我正在尝试从 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; }
}
首先我得到错误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 才能编译此代码。这不可能吧?我在这里想念什么?