ada*_*101 1 .net c# entity-framework ef-code-first entity-framework-5
我正在尝试从EF 4.3.1升级到EF 5,也从.Net 4升级到.Net 4.5.这是一个给我带来麻烦的课程的例子:
using System.ComponentModel.DataAnnotations;
public class MyClass
{
[Key, Column(Order = 0)]
public int CompositeKey1Id { get; set; }
[Key, Column(Order = 1)]
public int CompositeKey2Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
首先我得到错误Cannot resolve symbol 'Column'
.
所以我添加,
using System.ComponentModel.DataAnnotations.Schema;
因为ColumnAttribute移动到Schema命名空间.现在我收到一个Ambiguous reference
错误,因为在EntityFramework.dll和System.ComponentModel.DataAnnotations.dll中都存在ColumnAttribute.
所以我尝试删除System.ComponentModel.DataAnnotations.dll作为参考,现在我得到Cannot resolve symbol 'Key'
KeyAttribute在该DLL中,但不是在EntityFramework.dll中.
除非在EF5中不再需要KeyAttribute,否则我将不得不降级到.Net 4以获得此代码进行编译.这不可能是对的,是吗?我在这里错过了什么?
您需要卸载EF,然后将项目重新定位到4.5然后安装EF.如果您首先重新安装EF,最终将使用EF5 for .NET Framework 4(程序集版本4.4.0.0),其中包含数据注释,因为它们不在.NET Framework 4中,而数据注释来自System.Data.ComponentModel.DataAnnotations. dll数据注释在.NET Framework 4.5中移动到的位置.在.NET Framework 4.5上,您希望使用EF5 for .NET Framework 4.5(程序集版本5.0.0.0),这应该可以解决问题.如果您已经重新定位项目,只需卸载并重新安装EF即可.
归档时间: |
|
查看次数: |
3460 次 |
最近记录: |