問題タブ [entity-framework-mapping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4786 参照

sql - 異なるキーを持つ可能性のある 2 つのエンティティが同じ行にマップされている

Field1 PK int not null Field2 PK int not nullこのテーブルをマップしたいときに、このようなテーブルがあります。このエラーが発生します

そして、モデル内のそのテーブルを削除して再作成しようとしました。テーブルを追加すると別のエラーが発生しますが、最後に常にこのエラーが発生します

この問題をどのように処理できますか、助けてください...

0 投票する
1 に答える
242 参照

c# - 別のテーブルを使用した多対多のセルフ リレーションシップのマッピング Entity Framework

特定の条件下で同じタイプのエンティティを除外するエンティティがあります。これを達成するために、次のようなエンティティ クラスがあります。

これにより、EF がEntity_IDモデルで呼び出される 3 番目の列と外部キー フィールドを作成します。ここで別の関係が定義されていると思われるようですが、理由がわかりません。

作成されたテーブルの外部キーに関連する部分は次のとおりです。

0 投票する
3 に答える
2208 参照

c# - ASP.NET EFは、マップされていないクラスから識別子列を削除します

私は自分のコンテンツのモデルを持っています:

データのみを表示するには、上記のモデルで問題ありません。しかし、コンテンツを編集する機能を追加したいと考えています。したがって、メンバーコンテンツに属性を追加する必要があります-しかし、これは、コンテンツの通常のビューではなく、作成者が編集ボタンを押したときにのみ発生するはずです。

そこで、 BaseModelから継承する 2 番目のモデルを作成して、メンバーを自分の属性でオーバーライドできるようにしました。

これは正常に機能しますが、継承のため、EF は追加の column discriminatorを作成します。クラスの型が文字列として含まれています。私の場合、次のようにデータベースに保存される前に、常にEditableBaseModelBaseModelに変換するため、常にBaseModelです。

したがって、discriminator-column はスペースの無駄であり、削除したいと考えています。これは NotMapped-attribute を使用して実行できることがわかりました。ただし、モデルを保存しようとすると、次の例外が発生します。

EntityType 'EditableBaseModel' のマッピングおよびメタデータ情報が見つかりませんでした。

NotMapped-attribute は、 BaseModel から継承する別のクラスが存在することを EF に知らせるようですが EF はこのクラスに関する情報を取得しません。しかし、それは私が望むものではありません。EF に伝える必要があります。EditableBaseModelは、私のビューに適合するだけで、データベースには使用されないため、気にする必要はありません。

どうやってやるの?私が見つけた唯一の方法は、次のようにEditableBaseModelインスタンスを手動でBaseModelオブジェクトに変換することです。

しかし、複数の属性があるため、これは良い方法ではないようです。また、BaseModel に何かを追加するときに、ここにも追加する必要があるため、あまり柔軟ではありません。奇妙なエラーが発生する可能性があります。