[英]How to fix Entity Framework partial class method call?
我在Entity Framework中使用局部類從名為vPerson的視圖計算一個人的年齡。
private string _age;
public string Age
{
get{return CalculateAge();}
}
private string CalculateAge()
{
return Convert.ToInt32(System.DateTime.UtcNow.Date.Year - _dob.Value.Year);
}
但是,當我在EF select中使用Age時,它不會處理查詢。 這是代碼:
public IQueryable getData()
{
var res = from p in _context.vPerson.Select
(
p=>new PersonDetail
{
name = p.name,
dob = p.dob,
age = p.Age
}
);
return res;
}
我怎樣才能解決這個問題?
問題在於EF無法將您的計算轉換為SQL查詢。 有兩種解決方法:
EF查詢被轉換為SQL查詢。 自定義屬性不作為表中的列存在,因此無法將其轉換為查詢。 出於相同的原因,您不能在EF查詢中使用方法(特定的數據庫方法(例如SqlFunctions除外 )-無法將它們轉換為SQL查詢。 因此,您確實有兩個問題:自定義屬性和方法調用。 您唯一的選擇是直接在查詢中進行計算。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.