問題タブ [ef-fluent-api]

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 投票する
1 に答える
151 参照

c# - Join テーブルを公開するにはどうすればよいですか?

ORM での多対多マッピングの回避に関するJimmy Bogardのこのアイデアに従おうとしています。

このセットアップを考えると、関係で「結合」オブジェクトも直接公開できるようにしたいと考えています。

オブジェクト

  • ユーザー
  • 役割
  • UserRole (関連オブジェクト)

コード:

これに移行を追加すると、期待どおりになります。

UserRoles オブジェクトの DbContext に DBset を追加するとすぐに。EF は UserRoles オブジェクトの PK を見つけることができません。

UserRoles: EntityType: EntitySet 'UserRoles' は、キーが定義されていないタイプ 'UserRole' に基づいています。

次に、次のようにキーを指定してみます。

しかし、EF は、同じ UserRoles テーブルを使用したいことを知りません。これは、そのオブジェクトの 2 番目のテーブルを追加するためです。

単一の UserRole テーブルのみを使用するように DbModelBuilder に指示するにはどうすればよいですか?

この問題のデモ .sln がgithubにあります

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

c# - ネストされた列挙型をマッピングから無視する方法

便宜上、ネストされた列挙型を持つ参照エンティティがいくつかあります。例えば:

モデルの構成時に次の例外が発生します:タイプ 'StatusA+Values' とタイプ 'StatusB+Values' は両方とも 'Values' という単純な名前を持っているため、同じモデルでは使用できません。特定のモデルのすべての型には、一意の単純名が必要です。'NotMappedAttribute' を使用するか、Code First fluent API で Ignore を呼び出して、モデルからプロパティまたは型を明示的に除外します。

それを修正しようとすると、NotMappedAttribute が列挙型に適用されないことがわかりました。流暢な API .Ignore<T>(enum ではなく ref 型も必要) と.Ignore(IEnumerable<Type>)も試しましたが、うまくいきませんでした。Google 検索もあまり役に立ちませんでした。

これらの列挙型をモデルから除外する他の方法はありますか?

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

c# - HasColumnAnnotationを使用して複数のインデックスが可能ですか?

Entity Framework 6.1 では、新しいHasColumnAnnotationメソッドを介してテーブル インデックスを作成する機能が追加されたようです。プロセスを高速化するために、いくつかのヘルパー拡張機能を作成しました。

これはうまく機能します...別のインデックスで既に使用されている列を含む2番目のインデックスを作成しようとするまで。最後に追加したものは、オリジナルを上書きします。とHasColumnAnnotationで利用可能な新しいものを介して、同じ列に複数のインデックスを現在追加できるかどうかを知っている人はいますか?StringPropertyConfigurationPrimitivePropertyConfiguration

移行スクリプトに手動でインデックスを追加することで、いつものようにこれを回避できますが、EntityTypeConfigurationマッピングでこれを構成できると、すべてを 1 か所にまとめることができます。


Gerts のフィードバックの後、これが私が最終的に行ったことです。

そして、ここに新しい使い方があります:

0 投票する
2 に答える
1811 参照

entity-framework - EF 6.1 fluent API を使用して空間インデックスを作成する方法

さて、質問は十分に明確です。Entity Framework 6.1 fluent API を使用して空間インデックスを作成することはできますか?

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

c# - FK を使用して 1 対 1 の任意の関係を構成する方法

アーキテクチャの制限により、Idプロパティを変更することはできません!

私は従業員クラスを持っています:

そしてユーザークラス(システムユーザー)

クラスのMatriculaプロパティは、プロパティを持つUserクラスを指す FK である必要があります。 EmployeeMatricula

クラスのEmployeeプロパティはUser、同じ に関連付けられた Employee オブジェクトを表しますMatricula

EF で Fluent API を介してこれを設定するにはどうすればよいですか?

目標は、従業員がユーザーのプロパティMatriculaと同じである場合、それらを関連付ける必要があり、クラスはクラス内のこの従業員で満たされることです。MatriculaEmployeeUser

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

entity-framework - EF 6 Fluent API の CRUD から読み取ったマップ

私はネットを精査してきましたが、有用なものは見つかりませんでした。Entity Framework 6.x のストアド プロシージャに接続したい POCO クラスがあります。挿入、更新、および削除のためにFluent APIでそれを行う方法を見てきました....しかし、ただの読み取りではありません。

私はこれを見つけました:EF 6 Code First Stored Procedure - Read Only、しかしそれはどこかのコントローラーの単なるメソッドのようです。

他のエンティティと同じようにコンテキストを呼び出す方法はありますか? IE、ctx.Products.Where( p => p.ProductId == productId )?

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

c# - SQL ビューを Entity Framework コードで既に定義されている複数のエンティティに最初にマップしますか?

次のように、SQL テーブルをエンティティにマップするために、コード ファースト アプローチの流暢な API を使用しています。

マッパーは次のように宣言されます。

そしてユーザーマッパー:

これで問題なく動作します。ここで、情報を取得するためにロジックを変更する必要があります。現在、会社は完全なユーザー情報にSQLビューを使用することを決定しました。これにより、ユーザーのすべての情報を1か所で取得できます。今、SQLビューから来ている両方のテーブルからすべてのフィールドをマップする別のマッパーをやり直し/作成したくありません。

したがって、私の質問は、これらのマッパーの両方を次のようにマップする別のマッパーを宣言できるかということです。

提案してください。ありがとう

0 投票する
2 に答える
2444 参照

c# - Entity Framework - シード メソッドで既存のエンティティを 1 対 1 の関係に追加する

私のドメイン クラス:

Fluent API を使用したマッピング:

シード方法:

エラー:

新しい「サイト」を追加しようとすると、新しい「アドレス」も挿入されるようです。これを回避する方法は?先ほど追加した DBcontext に既存の「アドレス」を挿入する方法。私は Entity Framework の初心者であり、あなたの助けに本当に感謝しています. 前もって感謝します!