繁体   English   中英

实体框架未从新添加的列中获取值

[英]Entity Framework does not pick up the value from newly added column

型号:

//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:在LINQ to Entities中不支持指定的类型成员'isAdmin'。 仅支持初始化程序,实体成员和实体导航属性。

======

我确实尝试删除ADO.NET模型并重新添加它,重新启动计算机,但是没有运气的MVC模型仍然无法从数据库中获取正确的值。 (尽管它选择了新列)。

我做了很多次数据库结构更改,这很好,然后我做了另一件事,那就是将.NET Framework目标从4.6更改为4.5.2,这将是导致此问题的原因吗?

回到主要问题是为什么模型不返回正确的值,以及为什么当我通过(isAdmin == true)查询时,模型不支持异常-这应该是线索,但不知道发生了什么。

我设法解决了这个问题,但不知道到底发生了什么,但我最好的猜测是ADO.NET/实体框架的缓存(或其他缓存)。

只需创建一个具有不同名称的ADO.NET模型,然后它就可以正常工作,并且可以从数据库正常加载数据。

如果有人对此案例有假设的解释,请随时在评论中记下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM