我有这样的现有功能
public int sFunc(string sCol,int iId) { string ssqlQuery = " select " + sCol + " from TableName where ID = " + iId ; // Executes query and returns value in column sCol }
该表有四列存储整数值,我使用上面的函数分别读取它们.
现在我将它转换为Entity Framework.
public int sFunc(string sCol,int iId) { return Convert.ToInt32(TableRepository.Entities.Where(x => x.ID == iId).Select(x => sCol ).FirstOrDefault()); }
input string not in correct format
因为它返回列名本身.
我不知道如何解决这个问题,因为我对EF很新.
任何帮助,将不胜感激
谢谢
解决方法
这可能有助于解决您的问题:
public int sFunc(string sCol,int iId) { var _tableRepository = TableRepository.Entities.Where(x => x.ID == iId).Select(e => e).FirstOrDefault(); if (_tableRepository == null) return 0; var _value = _tableRepository.GetType().GetProperties().Where(a => a.Name == sCol).Select(p => p.GetValue(_tableRepository,null)).FirstOrDefault(); return _value != null ? Convert.ToInt32(_value.ToString()) : 0; }