問題タブ [dbcontext]

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

c# - EntityFramework 4.1 の POCO を使用した WCF WebHttp サービス - dbContext

WCF WebHttp サービスで POCO を返そうとしています。私はEntityFramework 4.1を使用しており、DbContext Generatorを使用してThe entity is createdエンティティを生成しています。

すべてがEFでうまく機能します。データベースにクエリを実行し、エンティティを操作できます。問題は私の WebHttp サービスから来ています。これらのエンティティのリストを返そうとすると、エラー 324 (空の応答) が返され、単一のエンティティ オブジェクトを返そうとすると、WCF エラー - "Request Error" が返されます。サービスのヘルプ ページは問題なく表示され、サンプルの応答も問題ありません。

サービスの戻り値の型をリストと文字列に変更して、エンティティの名のみを返すことでサービスをテストしました。これはうまくいきます。

私は ( WCF WebHttp Service のチュートリアルを見て) [Serialize()] やその他の属性をエンティティに追加する必要はないと思いました。

サービスがエンティティを返さない理由がわかりません。

あらゆる/すべての助けに感謝します。ロブ

これがサービスのコードです...

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

entity-framework - EF 4.1 - DBContext SqlQuery とインクルード

DBContext SqlQuery を使用して生の SQL を実行し、関連するエンティティを含めたいと考えています。次のことを試しましたが、関連するエンティティが読み込まれません:

何か助けはありますか?

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

entity-framework - Entity Framework 4.1 でデータベース優先 DBContext のコンストラクターに接続文字列を渡すにはどうすればよいですか?

さまざまな理由から、Entity Framework DB モデルの接続文字列をさまざまな .config ファイルのいずれかに保存したくありません。(新しい Entity Framework バージョン 4.1、.NET 4、および Visual Studio 2010 C# で最新かつ最高の DBContext API を使用しています。) ただし、DBContext のコード生成テンプレートは、パラメーターなしのコンストラクターを 1 つしか作成しません。(DBContext API を使用しない場合、私のエンティティ フレームワーク モデルには、必要なコンストラクターを含め、7 つの異なるコンストラクターから選択できます。)

これを行う方法を理解できる唯一の方法は、コード生成テンプレート (context.tt ファイル) を直接変更して、必要なコンストラクターを提供することでした (以下のコード例)。これは機能しますが、「難しい方法」でやっているように感じます。接続文字列を受け入れる DBContext コンストラクターを取得する正しい方法は何ですか?

それが他の誰かを助けるかもしれない場合の最後のメモ。この方法は機能しますが、「接続文字列」が厳密には DB 接続文字列ではなく、DB 接続文字列を含む特別なエンティティ フレームワーク接続文字列であることに気付くまでに少し時間がかかりました (アプリに格納されるものと同様)。 .config ファイル)。

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

c# - DbContextをモックする方法

これが私がテストしたいコードです

}

そして、これが私のテストコードです

テストを実行すると、行のDbContextに対してNull例外が発生します

私が抱えている問題は、DbContextにアクセスできないことです。どうすれば解決できますか

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

c# - DbContext マッピング テーブルを動的に

コンテキストの作成中に接続文字列が作成される dbContext があり、その情報の一部に基づいてテーブル名をマップしたい場合....そのデータをテーブルマッピングに渡すにはどうすればよいですか? 例えば:

dbcontext を初期化すると、次のようになります。

ここで、テーブルを "table_" + country + "_endtablename" のようにマップしたいと考えています。そのデータをマッピング呼び出しに渡すにはどうすればよいと思いますか?

これらのテーブルは、この形式を使用する既存のデータベースにマップされます。国は実際にはログインしているユーザーの資格情報から来ているため、場所などに基づいています。後者で作成された dbcontext の基本クラスへの内部コンストラクターである国コードにアクセスする方法を見つける必要があります。

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

.net - EF と POCO。プロジェクトを適切にセットアップする方法

最近、私は .NET で EF 4.1 の作業を開始し、今日まで自分のプロジェクトをセットアップしようとするまで、ある種の前向きな経験をしていました (これまでは、他の誰かが開始したプロジェクトに取り組んでいました)。

箱から出してすぐに動作したくないだけです。特別なことはしません。実際、最初はうまくいきましたが、突然動かなくなってしまい、4 時間も時間を無駄にしてからこの記事を書いています。

私のソリューションは 3 つのプロジェクトで構成されて い ます


DataAccessには、EntityModel.edmx および EntityModel.Context.tt ファイルが含まれています。
BusinessObjectsには、基礎となるすべてのオブジェクトを含む EntityModel.tt が含まれています。ADO.NET DbContext ジェネレーターを使用してオブジェクトを生成しました。
EntityModel.Context.tt の名前空間は BusinessObjects に設定されます。

WebApp と DataAccess は BusinessObjects プロジェクトを参照しています。BusinessObjects は何も参照しません。

(これを正しく設定したと思います。EntityModle.ttはedmxファイルを表示でき、ファイルを編集するとオブジェクトが作成されます。)

したがって、この時点で、プロジェクトはエラーなしでうまくコンパイルされます。

次のステップでは、EntityDataSource を default.aspx ページに追加します。データソース構成 (web.config からの接続) で接続を選択すると、エラーが発生します:この接続文字列で指定されたメタデータを読み込めませんでした。Web プロジェクトの再構築を検討してください... 指定されたメタデータ リソースを読み込めません。

以前は、接続文字列のスペルを間違えたり、モデル名を変更したりするときにこの問題が発生しましたが、今は何もしませんでした。app.config から接続文字列をコピーするように、edmx ファイルとその POCO を数回再作成しました。それは単に機能しません。

どんな助けでも大歓迎です。ありがとう。

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

c# - Entity Framework 4.1は、SaveChanges()でデータベースにデータを配置しません

新しいEntityFramework4.1を使用すると問題が発生します。数日前にテストを開始しましたが、POCOの概念全体とこの新しいAPIにはまだ慣れていません。

とにかく、いくつかのコーディングをしている間、私は次のようなものを作成しました:

これは、このような名前のタグがすでに存在するかどうかをデータベースでチェックすることになっています。私はこのコードでこの関数を使用しています。

これは基本的に、新しく作成された写真にタグを追加し、写真がすでにデータベースにあるかどうかを確認し、データベースに追加していない場合は、すべての写真の後にSaveChanges()を呼び出します。

私の問題は、実行中に関数GetTagWithNameが「SingleOrDefault」の取得時に「シーケンスに複数の要素が含まれています」というエラーを引き起こすことです。これは、新しいタグを追加する前にデータベース全体をチェックし、この関数を使用してチェックするためです。タグがすでにDBにある場合。

私のコードで見たところ、データベースから取得したTagオブジェクトをPictureに追加しても、後でそれを新しいオブジェクトとしてTagsテーブルに追加するという事実が原因で状況が発生します。

その説明はありますか?

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

c# - Entity Frameworkを使用しているときにDbContextを再起動するのはなぜですか?

WCFを使用する場合は静的に設定することはお勧めしませんDbContextので、より良い使用方法があるかどうかはわかりません。そのため、データベースにアクセスするたびに作成しています。

Entity Frameworkを使用することのすべての利点を知っていると、毎回再作成するため、役に立たなくなるものもあります。DbContextビッグエンティティモデルを作成するプロセスを検討する必要があるため、オーバーヘッドが発生する可能性があります。

あなたの意見は何ですか?

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

entity-framework - EntityFramework 共有 dbcontext を確実にクエリできません

複数のリポジトリ間で 4 つの DbSet を持つ単純な DbContext を共有しようとしています。各リポジトリはこの基本クラスから継承しています

質問: これはリポジトリ間の接続を共有する適切な方法ですか?

さまざまなリポジトリにアクセスすると、単体テストで断続的なエラーが発生します。リポジトリ メソッド GetEntityByName から例外がスローされる

テスト メソッド Tests.Service.TestDelete が例外をスローしました: System.ObjectDisposedException: ObjectContext インスタンスが破棄されたため、接続を必要とする操作には使用できなくなりました。

データベースが既に存在する場合、コードは期待どおりに実行されます。GetEntityByName(string name) の実装を次の非パフォーマンス コードに変更した場合にも機能します

質問: ここで何が起こっているのですか?

テストを実行したときにデータベースが存在する場合、エラーはまったく発生しないことに注意してください。

ティア、jt

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

entity-framework - 複数の関連エンティティの一括読み込み

既存の Repository クラスに複数の Include を処理できる拡張メソッドを追加する必要があります。

現在の実装では、1 つの関連エンティティのみを処理できます。関連する 2 つ以上のエンティティも熱心にロードできる必要があります。

私のエンティティクラス:

どこで使用しますか:

ありがとうございました!