[英]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.