0

Entity Framework 5 と PostgreSQL DB を使用して .NET C# アプリを作成しています。私はnpgsql 2.0.12 をデータ プロバイダーおよびデータベース ファーストのアプローチとして使用しています。

まず、モデル ファイル (csdl、ssdl、mdl) と、postgresql データベースへの接続文字列をパラメーターとしてedmgenを使用してオブジェクト レイヤーを作成しました。

edmgen は、ジョブを実行するときに警告を表示します。

警告 6005: データ型 'money' はサポートされていません。テーブル 'tablename' の列 'amount' は除外されました。

その後、すべて正常に動作しますが、その列がモデルに含まれていないだけです。もちろん、私はこのコラムが必要なので、それでは満足できません。DB 構造を変更しないでください。

だから、私がしたことは、モデルファイルを手動で変更したことです-それぞれCSDL、SSDL、MDL:

<Property Name="amount" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
<Property Name="amount" Type="money" Nullable="false" />
<ScalarProperty Name="amount" ColumnName="amount" />

また、この表の他の属性と同様に、この属性を追加して ObjectLayer を編集しました。

アプリを実行すると、次のようになります。

指定されたスキーマは無効です。エラー: タイプ money は名前空間またはエイリアスで修飾されていません。修飾なしで使用できるのはプリミティブ型のみです。

それは誰のせいですか?EF? npgsql? edmgen?

pgfoundry.org/forumで何かを見つけましたが、数値に変更しても役に立ちません。 npgsql のユーザー マニュアルには、money がサポートされている型であることが示されています。

これをお金型の列で機能させるにはどうすればよいですか?

4

1 に答える 1