問題タブ [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 投票する
1 に答える
448 参照

entity-framework-4 - context.SaveChanges を呼び出すときの EF CTP4

私は、EF CTP4 の NHibernate で使用するプラクティスの多くを複製しようとしています。

現在、一般的なリポジトリ インターフェイスがあります (CTP4 では、DbContext.Set を使用してこれを簡単に行うことができます)。

コンテキストを渡し、StructureMap を使用して HttpRequest ごとにスコープを設定しています。

NHibernate では、ISession (再び StructureMap を使用して作成) を渡しますが、ActionFilter (UnitOfWork) を使用して、リクエストの最後にトランザクションをコミットします。

EF CTP4 に同等のトランザクションはありますか? そうでない場合は、同じフィルターを使用して context.SaveChanges() を呼び出すか、リポジトリ内でこれを行う必要があります。

余談ですが、エンティティが新しいかどうかをテストする最も簡単な方法は何ですか。NH では、ISession.SaveOrUpdate を呼び出すだけで十分です。すべてのエンティティが Guid 識別子を使用していることに注意してください。おそらくデフォルト(Guid)のチェックですか?

ありがとう。

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

entity-framework-4 - EFCTP4との1対多の関係のマッピングに問題があります

カテゴリとプロジェクトの間に1対多の関係を定義しようとしています(カテゴリには1つまたは複数のプロジェクトを含めることができ、プロジェクトには1つまたはまったくカテゴリを含めることができません)

次のマッピングを定義しました。

これは正常に機能しているように見えますが、EFはCategories_Productsテーブルを生成しています(多対多の関連付けに使用されます)。

デフォルトのデータベース初期化子を無効にしましたが、このテーブルはまだ生成されています。私は何が間違っているのですか?

ありがとうベン

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

c# - IObjectSet に CompiledQuery の拡張メソッド エラーが含まれる

カスタム ObjectContext クラスでは、エンティティ コレクションを IObjectSet として公開しているため、単体テストを実行できます。コンパイルされたクエリでこの ObjectContext を使用し、"Include" 拡張メソッドを呼び出すと、問題が発生しました (Julie Lerman のブログhttp://thedatafarm.com/blog/data-access/agile-entity-framework-4-から) repository-part-5-iobjectset/ ) および彼女の著書 Programming Entity Framework 2nd edition の 722-723 ページにあります。コードは次のとおりです。

クエリ:

拡大

LINQ to Entities はメソッド 'System.Linq.IQueryable1[MyPocoObject] Include[MyIncludedPocoObject](System.Linq.IQueryable1[MyPocoObject], System.String)' メソッドを認識せず、このメソッドはストア式に変換できません。

IObjectSet ではなく ObjectSet コレクションでこの同じクエリを使用すると、正常に動作します。プリコンパイルせずにこのクエリを実行すると、正常に動作します。ここで何が欠けていますか?

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

entity-framework - EF Code Firstが関連オブジェクトを返さない

既存のデータベースで EF Code First を使用しています。

2 つのオブジェクト:

FooIdとの両方BarIdがデータベースの主キーであり、テーブルにはテーブルを指す外部キーでBarある列があります。FooIdFoo

を選択するBarFoo、null 参照になります。私は EF が自動的にそれらの 2 つをまとめたと思っていたでしょうが、おそらく何かが足りないのでしょうか?

データベース マッピング:

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

c# - Entity Framework Code First で多対多の関連付けを行う方法

私は EF を使い始めたばかりで、すばらしいチュートリアル ビデオを見ました。私は次のことで立ち往生しています。

ファイルのコレクション用のクラスがあり、これらをイベントや人に結び付けたい

データベースを生成すると、ファイル テーブルに PersonID と EventID が含まれます。

ユーザーが人やイベントにファイルを添付できるようにしたいと考えています。

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

entity-framework - DbContext DbSet が null なのはなぜですか?

新しい Entity Frameworks Code First アプリを作成しましたが、DbSet (People) が null を返しています。

web.config : 接続文字列

今私が電話するとき

_repo.Peoplenullになります

私は何が欠けていますか?

  • Microsoft.Data.Entity.Ctp.dll が参照されています
  • データベース初期化子の有無にかかわらず試しました。
0 投票する
1 に答える
1160 参照

entity-framework - EF CTP 4 データベース名の構成

サンプルでは、​​この接続文字列を使用しています:

そして、 Application_Start() で使用します:

そして、私のデータベースでは、この本当に奇妙な新しいデータベースを取得します: 2 つのテーブルdbo.EdmMetadatadbo.Picturesを持つ MyAppNamespace.Models.PicturesCatalog

テーブルは問題ありませんが、それらのテーブルを使用して (接続文字列のように) PicturesDatabaseという名前の新しいデータベースを作成しないのはなぜですか?

このテーブルを数回削除しようとしましたが、PicturesDatabase を作成して使用しようとしましたが、それでもこの MyAppNamespace.Models.PicturesCatalog が生成されます。何が問題なのですか?どうすれば修正できますか?

0 投票する
7 に答える
17421 参照

c# - EF4コード-最初にInvalidOperationExceptionが発生します

プロジェクトをビルドするたびに実行しようとすると、問題が発生します。イニシャライザーは実行されているようですが、最初のクエリに関しては、次のように終了しますInvalidOperationException

参考までに、NuGetで直接インポートされたEF CodeFirstCTP4を使用しています。SQL Server2008R2への接続

私がしたいのは、モデルの修正がある場合はデータベースを再作成し、ルックアップテーブルのいくつかの値をシードすることです。これらは両方とも、箱から出してすぐにサポートされるようです*。

私のセットアップは次のようになります。

Global.asax

CoreDB.cs

実行すると、これと同様の行で停止します。これは、基本的に、データベースの作成後に最初に検出されるクエリです。

私がそうは思わないこと:

  • 権限ではありません:SQLServer内の実際のデータベース自体を削除しました。アプリケーションは、クエリの実行が試行されるのとほぼ同時にそれを再作成します(初期化子が設定され、必要になるまで作成を保留することは明らかです)。また、Web.configで指定されたユーザーとしてSQL Serverにログオンし、データベースへの完全な読み取り/書き込みアクセス権を持っています。実際、そのアカウントがデータベースも作成するので、おそらく彼らはそうすべきです。
  • データベースが作成されています:DBを削除すると、自動的に正常に再作成されます。
  • providerName接続文字列は、属性を含めて正しく定義されています。

<add name="CoreDB" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=TheDatabase;User Id=TheUsername;Password=ThePassword;" providerName="System.Data.SqlClient" />

  • クエリが正常に失敗すると、次にアプリケーションが再構築されるまでコードが正しく開始されるため、コード/ロジックのバグではないようです。それは明らかに可能性があり、とにかく何があってもコードに回避策を適用する必要があるでしょう。:)

何をすべきか?

理想的には、「データベーススキーマについてはあまり考えない」ことです。Scott Guの優れたブログ投稿(および既存のデータベースでの作業のフォローアップ)にあるように、問題が解決して消えてしまったようにしたいと思います。ほとんどの場合、これは真実です。ある時点で接続が閉じられないという問題のようですが、この問題を修正する方法がわかりません。

いくつかのフォーラム/SOの投稿は、私が抱えている問題が基本的にイニシャライザーが計画どおりに機能しておらず、接続が開いたままになっている可能性があることを示唆しています。他の場所での解決策は、単に「独自の初期化子を作成しない」ことであるように見えます。これは最大の解決策ではありませんが、誰かがアイデアを持っていない限り、おそらくCTP5までやらなければならないでしょう。

*うん、それはCTPだと知っているので、「サポートされている」という言葉はおそらくないでしょう:)

0 投票する
0 に答える
303 参照

ctp4 - EF4 CTP4 Code First の追加のペイロード列を含むジャンクション テーブル

次のテーブルがあります。

WOPartList (1 つ以上の Part_Size を持つパーツを定義します) WOPartSize (1 つ以上の Part_Size を持つサイズを定義します)

Part_Size (sku、on_hand などの addt ペイロード列としてのジャンクション テーブル)

DAL の POCO クラスは次のとおりです。

ジャンクション テーブルを構成するにはどうすればよいですか? 注釈 ? 流暢な API ? 私の主な問題は、ジャンクション テーブルに追加のペイロード フィールドを取得することです...それ以外の場合は、単に EF にテーブルを生成させ、POCO クラスはありません...

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

entity-framework-4 - C# と Entity Framework CTP 4 を使用したドメイン モデリングの質問

写真のコレクションを含むアルバムをモデル化しようとしています。各アルバムには、写真のコレクションと、親指である写真が含まれます。これは私が持っているものですが、EFはそれを気に入っていないようです:

私は何かが足りないのですか、それともこれは正しく見えますか? EF がデータベースで 1 対多を生成することを期待していますが、Album と Photos (Album_Photos) の間の参照テーブルを作成し続けますが、これは多対多であってはなりません。どんな助けでも素晴らしいでしょう。