1

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 referenceColumnAttribute が EntityFramework.dll と System.ComponentModel.DataAnnotations.dll の両方に存在するため、エラーが発生します。

そのため、参照として System.ComponentModel.DataAnnotations.dll を削除しようとしましたCannot resolve symbol 'Key'が、KeyAttribute はその dll にありましたが、EntityFramework.dll にはありませんでした。

KeyAttribute が EF5 で不要になった場合を除き、このコードをコンパイルするには、.Net 4 にダウングレードする必要があります。そんなはずないですよね?ここで何が欠けていますか?

4

1 に答える 1