public partial class User : IUser
{
public long ID {get; set;}
public BaseUser BaseUser
{
get
{
var context = new Factory().Create<ContextDB>();
return context.Users.Find(this.ID);
}
}
}
和
var result = _Context.Employees.Where(t => t.User.BaseUser.UserName.ToLower().Trim().Contains(searchKey));
我在这里得到一个例外:
指定的类型成员&#39; BaseUser&#39; LINQ to Entities不支持。仅支持初始化程序,实体成员和实体导航属性。
对此有任何解决方案吗?
答案 0 :(得分:2)
您已撰写 Linq 查询。您正在使用 实体框架 。因此,您正在使用 Linq-To-EntityFramework 。
.Net
会根据您使用的RDMS类型将您的Linq
查询转换为数据库查询。
例如,让我们来看看这段代码:
context.Users.Select(x => x.Id == 5);
这将被翻译为:
select * from User where Id=5;
因此,这意味着.net如果无法将其转换为数据库查询,则会抛出异常。例如,您的查询。您已在班级中创建了属性。你是否正在将它转换为数据库查询?怎么样?没有办法!这就是例外的原因。
此外,您的BaseUser
财产似乎对我不寻常。如果您已将所有内容配置正确,BaseUser
将与User
相同。