1

私のクラスライブラリプロジェクトは、EntityFramework5アセンブリを参照しています。以下のコードの「AvailablePoints」の.NETタイプはDecimalです。CodeFirst Fluent API構成を使用して、このプロパティをSQL Serverのdecimal(9,4)データ型にマップし、データエントリが小数点以下2桁で切り捨てられないようにしようとしています。これは、デフォルトのマッピングです。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<EventGroup>().Property(g => g.AvailablePoints).HasPrecision(9,4);
    base.OnModelCreating(modelBuilder);
}

次のコンパイラエラーが発生します。

「タイプ'System.Data.Spatial.DbGeography'は、参照されていないアセンブリで定義されています。アセンブリ' System.Data.Entity、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'への参照を追加する必要があります。 。

.Property(g => g.AvailablePoints).HasPrecision(9,4);メソッドの最初のステートメントから削除すると、正常にコンパイルされます。EF5のドキュメントやフォーラムの投稿では、このコンパイラエラーに対処したり、このFluentAPI構成がSystem.Data.Spatial.DbGeographyタイプにどのように関連しているかを説明したりしていません。

4

1 に答える 1

0

これは、プロジェクトが必要なアセンブリを参照していないためです。

ソリューションエクスプローラーで、プロジェクト内の「参照」フォルダーを見つけます。
そのフォルダを右クリックし、[参照の追加]をクリックします。
[.NET]タブには、バージョン4.0.0.0の[System.Data.Entity]エントリがあります。これを追加すると、この問題が修正されるはずです。

于 2013-03-03T04:15:04.317 に答える