Rob*_*Rob 10 entity-framework data-annotations .net-4.5 entity-framework-5
我有一个针对.NET 4.0并使用EF 5.0的项目.将目标框架更改为4.5(并更新EF 5.0引用以使用.NET 4.5程序集)后,似乎数据注释不再起作用.例如:
[Table("ApplicationSession", Schema = "Application")]
public class ApplicationSessionEntity
{
[Key, ForeignKey("GenericSession")]
public int GenericSessionID { get; set; }
...
Run Code Online (Sandbox Code Playgroud)
过去工作正常,但现在在运行时,DbContext抛出InvalidOperationException:Unable to determine the principal end of an association....
我可以添加Fluent api调用来解决这个问题(并且确实如此),但是它不能识别该表不在"dbo"模式中.同样,我知道Fluent api可用于解决此问题,但为什么数据注释突然被忽略?
谢谢!
在.NET Framework 4.5中,EF注释从EF.dll移动到System.ComponentModel.Annotations程序集.看起来即使你以.NET Framework 4.5为目标,你仍然可以在某处获得EntityFramework.dll v4.4.0.0的引用.因此,您的类将使用4.4.0.0程序集中的属性进行编译.在运行时,正在使用较新的EntityFramework.dll(5.0.0.0),它会从System.ComponentModel.DataAnnotations程序集中查找属性.由于您拥有EF.dll 4.4.0.0中的那些,因此无法找到它们,因此看起来属性被忽略.
| 归档时间: |
|
| 查看次数: |
4751 次 |
| 最近记录: |