型号:
//Auto generated by MVC Model
public partial class user
{
public int Ref { get; set; }
public string First_Name { get; set; }
public bool isAdmin { get; set; } //the problem
}
数据库:
Ref | First_Name | isAdmin
1 | Admin | 1
2 | Bob | 0
C#:
var u1= db.users.Find(1); //get Admin
var ia1= u1.isAdmin; //return false (0)
var adminList = db.users.Where(i => i.isAdmin == true).ToList(); //return error
错误:
System.NotSupportedException:'指定的类型成员' isAdmin'是 LINQ to Entities不支持。只有初始化者,实体成员, 支持实体导航属性。'
==
我确实尝试删除ADO.NET模型并重新添加它,重启我的机器但没有运气MVC模型仍然没有从数据库中获取正确的值。 (虽然它拿起了新专栏)。
我确实多次更改了我的数据库结构并且很好,我做的一件事就是将.NET框架目标从4.6更改为4.5.2,这会导致这个问题吗?
回到主要问题是为什么模型没有返回正确的值,以及为什么在我查询时(isAdmin == true)它不受支持的异常 - 这应该是领先的,但是我一无所知&#39继续。
答案 0 :(得分:1)
我设法解决这个问题而不知道到底发生了什么,但我最好的猜测是ADO.NET/Entity Framework的缓存(或其他任何东西)。
只需创建一个具有不同名称的ADO.NET模型,然后它就可以正常地从数据库中正确加载数据。
如果有人对此案件有假设解释,请随时在评论中记下来。