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 がサポートされている型であることが示されています。
これをお金型の列で機能させるにはどうすればよいですか?