問題タブ [ef-code-first]

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

.net - アプリケーションで DbContext にアクセスするのはかなり悪い習慣ですか?

私は通常、CRUD メソッドをカプセル化し、拡張メソッドを単純化するリポジトリ パターンのサンプルを目にします。DbContext で簡単に使用できるリポジトリ メソッドを作成するのは非常に面倒でした。理由が DbContext とアプリケーション全体の間の疎結合を作成することである場合は、DbContext をインターフェイスに抽出してアプリケーション全体で使用することで、これを既に行うことができます。

そのため、単純なメソッドなどは、リポジトリでラップするのではなく、リポジトリのメンバーとして DbContext にアクセスする方がよさそうです。どう思いますか ?

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

entity-framework - エンティティ タイプ現在のコンテキストのモデルの一部ではありません

DBにはテーブルがありますPackagingInfo。私はPackageクラスを持っていShopEntities : DbContextます。

コンテキストをインスタンス化し、_dbそのプロパティを調べた後Packages、例外が通知されます。

アップデート

この質問を編集し、再開をリクエストしました。これは、ここで通知された注釈の代わりに、テーブル マッピングが EDMX ファイルで行われるモデル ファースト アプローチでも発生しているためです。

モデル ブラウザ ウィンドウには、Packageボット内のモデルおよびストア エンティティ タイプが表示され、エンティティのテーブル マッピングには、テーブル列に適切にマッピングされた各プロパティが表示されます。これは、アノテーション コード ファースト スタイルによって達成されるのと同じマッピングです。

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

asp.net-mvc-3 - MVCでEFCodeFirstPocoクラスとViewModelクラスの間でDataAnnotationsを共有するにはどうすればよいですか?

EF-CodeFirstを使用して、Pocoオブジェクトとその構成からデータベースを作成しています。Dataannotation(Required、DataLength、RegularExpression、DataType)を頻繁に使用してメタデータをMVCに取得し、後でローカライズするためのリソースを指すエラーメッセージを表示しました。

単純なCRUD操作の場合、これは問題ではありません。

しかし、ViewModelクラスが必要になるとすぐに、PocoオブジェクトからDataannotationsを失います。

DRY(繰り返してはいけない)の原則を損なうことなく、これら2つのデザインをどのように組み合わせることができますか?

ありがとうアンドレアス

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

entity-framework - EFコードファーストでは、3つのエンティティが同じ接続テーブルを共有できますか?

次の状況を考えると、Entity Framework Code-first は、接続テーブルまたは結合テーブルの名前を間違えたり、名前を変更したりします。

User と AppUser の両方に、次の構成エントリがあります。

実行時に AppUsers (DbSet<AppUser>) を使用しようとすると、次のエラーが発生します。

「オブジェクト名 'dbo.UserRoleLinks1' が無効です。」「オブジェクト名 'dbo.UserRoleLinks1' が無効です。」

結合テーブル名が既に存在するため、コード ファースト構成によって結合テーブル名がインクリメントされているようです。

どうすればこれを機能させることができますか? テーブルの列のサブセットを取得するより良い方法はありますか?

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

entity-framework - Entity Framework DBSet.Add メソッドで IDENTITY_INSERT ON が尊重されない

このクエリを実行します。

.Add()からメソッドを実行する直前DbSet

私のデータは、提供している ID の代わりに ID 値を使用しています。

これは一時的に(データ移行のために)のみ必要であり、将来的には自動生成された ID のままにする必要があります。

データベースに SQL Server CE 4 を使用しています。

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

entity-framework-4 - DbContext.Set のモック()?

最初に EF Code を使用しており、販売データベースのデータ コンテキストがあります。さらに、データ コンテキストの上に位置し、いくつかの基本的な CRUD 操作を実行するクラスがあります。

たとえば、次の関数があります。

偽のコンテキストと IDBset プロパティを作成する方法の例を見つけました。私はそれを実装し始めましたが、問題に遭遇しました。

汎用の CRUD メソッドを作成しようとするため、コードでは dc.Set() をかなり自由に (上記のように) 使用します。ReadCustomer、ReadContact などを使用する代わりに、Read() を実行します。ただし、dc.Set は IDbSet ではなく DbSet を返すため、それをモックすることはできません。

DbContext をモックまたは偽造して、まだ Set 機能を使用できた人はいますか?

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

entity-framework - EF Code First CTP5 - プロパティの名前を外部キーの列名として使用する

次のモデルがあるとします。

EF は FK 列をBarIdとして生成しようとします。

TheBarを使用するにはどうすればよいですか?

私は次のことを試しました:

しかし、コンテキストを使用しようとすると、次の例外が発生します。

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

entity-framework - EF 4CTP5複雑なクエリ

私は次のようなモデルを持っています:

私はこのインフラストラクチャを使用しています。

私の総体的なルーツは、顧客、注文、製品です。マッピングは単純なので、ここには含めませんでした。

LINQを使用して、「飲料」カテゴリの製品を注文したすべての顧客をどのように選択しますか?

私がWebで見たすべてのサンプルは、非常に基本的なクエリであり、高度なものではありません。

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

entity-framework-4 - EF 4:サポートされていない非スカラー変数の参照

私は最初にコードを使用して、リストプロパティで簡単なクエリを実行して、フィルタリングリストに文字列が含まれているかどうかを確認しようとしています。しかし、私は問題にぶつかっています。簡単にするために、次のことを想定します。

私が検討しているオプションは、FavoriteColorsが文字列の場合、Contains呼び出しを実行できるため、これをjsonシリアル化文字列に変換することです。または、船外に出て「カラー」エンティティを作成することもできますが、かなり重いです。残念ながら、列挙型もサポートされていません。

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

entity-framework - DbEntityEntry のモックまたは偽造、または新しい DbEntityEntry の作成

DbContext.Set のモックに関する他の質問に続いて、 EF Code First のモックに関する別の質問があります。

次のような更新方法があります。

Context は、私自身の DbContext のインターフェースです。

私が直面している問題は、どのように処理するかです

Context.Entry(entity).State.

私はこのコードをステップ実行しましたが、Context インターフェイスの実装として実際のライブ DbContext がある場合に機能します。しかし、偽のコンテキストをそこに置くと、それを処理する方法がわかりません。

DbEntityEntry クラスのコンストラクターがないため、偽のコンテキストで新しいコンストラクターを作成することはできません。

CodeFirst ソリューションで DbEntityEntry をモックまたは偽造して成功した人はいますか?

または、状態の変化を処理するためのより良い方法はありますか?