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
ColumnAttribute が EntityFramework.dll と System.ComponentModel.DataAnnotations.dll の両方に存在するため、エラーが発生します。
そのため、参照として System.ComponentModel.DataAnnotations.dll を削除しようとしましたCannot resolve symbol 'Key'
が、KeyAttribute はその dll にありましたが、EntityFramework.dll にはありませんでした。
KeyAttribute が EF5 で不要になった場合を除き、このコードをコンパイルするには、.Net 4 にダウングレードする必要があります。そんなはずないですよね?ここで何が欠けていますか?