.NET 4.0およびEF 5.0を対象としたプロジェクトがあります。ターゲットフレームワークを4.5に変更した後(そして、.NET 4.5アセンブリを使用するようにEF 5.0のリファレンスを更新する)、データ注釈がもう機能していないようです。たとえば:.NET 4.5をターゲットとした後、EFデータ注釈が「機能していません」
[Table("ApplicationSession", Schema = "Application")]
public class ApplicationSessionEntity
{
[Key, ForeignKey("GenericSession")]
public int GenericSessionID { get; set; }
...
が正常に動作するために使用されるが、今、実行時に、DbContext
はInvalidOperationException
をスロー:Unable to determine the principal end of an association...
。
これを解決するためにFluent APIコールを追加できますが、それはテーブルが "dbo"スキーマにないことを認識しません。繰り返しますが、私はFluent apiを使ってこれを解決できることを知っていますが、なぜデータアノテーションが突然無視されていますか?
ありがとうございます!
System.ComponentModel.Annotationsへの参照がありますか?注釈は.NET Framework 4.5でこのアセンブリに移動されました。私が考えていることは、どういうわけか古いアノテーションアノテーションでコンパイルしていて、EF5ランタイムは新しいものを探しているということです。あなたはテーブル上のF12キーを押して、これをチェックする場所を見ることができます。 – Pawel
@Pawel System.ComponentModel.DataAnnotationsへの参照があります。 EF 5.0にアップグレードしたときに必要だったと思います。私はそのアセンブリの.NET 4.0と.NET 4.5バージョンを使用しようとしましたが、どちらも同じ動作を示します。 – Rob
バージョン4.4.0.0のEntityFramework.dllへの参照がありますか? – Pawel