升级到EF 6.1.1会使[NotMapped]的效果消失

Gru*_*lon 8 c# asp.net-mvc entity-framework-4 entity-framework-6

我已经从EF 4.3.1升级到6.1.1,现在看起来注释[NotMapped]是无用的.是的,我已经改变了正确的装配,一切看起来都很好.

在存在[NotMapped]的任何地方,属性被作为域属性处理,我得到一个错误,EF无法在数据库中找到匹配的列.

例:

private bool _authenticated = true;

        [NotMapped]
        public bool Authenticated
        {
            get { return _authenticated; }
            set { _authenticated = value; }
        }
Run Code Online (Sandbox Code Playgroud)

是的,似乎我可以通过添加...来解决这个问题

 modelBuilder.Entity<User>().Ignore(x => x.Authenticated);
Run Code Online (Sandbox Code Playgroud)

......但是,在EF6中使用[NotMapped]是什么意思?

(升级前工作完美)

Gru*_*lon 6

通过首先卸载然后在解决方案中的所有项目上重新安装EF来解决.

我认为当我第一次升级到EF6时,某些项目的.NET版本有些不匹配,这使得系统从错误的程序集(.NET而不是EF)中获取[NotMapped]注释.

这导致我:http://social.msdn.microsoft.com/Forums/en-US/2d682be0-daca-45c4-ad76-5885acc6004f/possible-bug-with-inheritance-and-notmapped?forum=adodotnetentityframework

...以及大多数行:"如果您使用.NET 4.5中的System.ComponentModel.DataAnnotations.dll程序集中的新注释,它们将不会被Code First处理."