問題タブ [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.
asp.net - ASP.NET MVC 3EFCodeFirst-DBContextアイテムの編集
私は一日のようにこれに不満を感じています...助けてください。
JQueryを使用してDOM要素を追加/削除することで新しいアイテムを動的に追加できる請求書セクションがあります...これらの要素に正しく名前を付ける方法をすでに理解しているため、モデルに適切にマッピングされて送信されますアクションパラメータに。
したがって、コントローラーに「請求書」タイプのパラメーターを使用した「編集」というアクションがあるとします。
請求書パラメータには、必要なすべてのデータが含まれています。私はこれに問題はありません。以下はオブジェクトモデルです。
InvoiceItemsコレクションに注意してください。これには、動的に挿入された請求書アイテムのコレクションが含まれています。以下はInvoiceItemモデルです
そして、それは私が立ち往生しているところです。
InvoiceコレクションInvoiceItemsのアイテムをデータベースに挿入/更新できません。私はたくさんグーグルしていて、これらの解決策を見つけました-残念ながら、これらのどれもうまくいきません。
解決策#1 -SetValuesを使用した奇妙なコード:
解決策#2-新しい更新メソッドをDbContextに追加します。
解決策#3 - http://blogs.msdn.com/b/adonet/archive/2011/01/29/using-dbcontext-in-ef-feature-ctp5-partに従って、既存の変更されたエンティティをコンテキストにアタッチする-4-add-attach-and-entity-states.aspx
ソリューション#1の仕組み:新しく追加されたInvoiceItemsを除くすべてのプロパティを更新します。SetValues()はICollectionプロパティを無視します。これは、db.SaveChanges();の直前にこの行を追加した場合に機能します。
...しかし、これが正しいアプローチだとはまったく思いません。
ソリューション#2の仕組み: DbContextクラスにObjectContextプロパティがないため、まったく機能しません。
ソリューション#3の仕組み:このソリューションは請求書を更新しますが、それ以外の場合はInvoiceItemsを無視します。
追加情報:以下は、InvoiceItemプロパティにマップされるアイテム要素を生成するために使用されるJavaScriptの一部です。
最後の質問:私は何が間違っているのですか?別のモデルに関連するアイテムの新しいコレクションがデータベースに自動的に挿入されることの何が問題になっていますか?親モデルが正常に更新されたときに、なぜ無視されるのですか?
編集1:修正
entity-framework-4.1 - コンソールアプリのStructureMapでDbContextを設定するためのベストプラクティスは何ですか?
私はStructureMap、EF 4.1/POCOを使用しています。コンソールアプリは、あるデータセットに対して2つの結果として生じる操作を実行することを想定しています。たとえば、operation1とoperation2です。DbContextをシングルトンとして設定しました。これにより、operation1がDbContextにゴミを残し、operation2が正常に機能しなくなるため、operation2で問題が発生します。同時に、「呼び出しごと」にDbContextを設定することはできません。cozoperation1は、コンストラクターを通過する同じDbContextを共有する2つのリポジトリを使用します。したがって、理想的には、operation2の前にDbContextを再初期化/リセット/クリーンアップする必要があります。何か案は?
ありがとう
unicode - EntityFramework4.1のDbContextでのUnicodeテーブル名の問題
EF 4.1で新しいDbContextの方法を試してみようと思いましたが、問題が発生しました。
データベース(SQL Server 2008)から新しいエンティティデータモデルを生成してから、DbContextジェネレーターを使用します。
Länderというテーブルをフェッチしようとすると、例外が発生します。
EntitySqlException:単純な識別子'Länder'には、基本的なラテン文字のみが含まれている必要があります。UNICODE文字を使用するには、エスケープされた識別子を使用します。
ラテン語の名前を持つ他のテーブルを試してみると、すべて問題ありません。ObjectContextを使用する場合、この問題は発生しません。
テーブル名をエスケープするにはどうすればよいですか?
c#-4.0 - IQueryable の使用代わりにDbSet問題
次の問題に遭遇しました...データベースコンテキストがあります:
そして、ProviderHardwares テーブルに存在しないすべてのハードウェアを取得しようとします。
「PrimaryDbContext db = new PrimaryDbContext();」のように厳密に PrimaryDbContext を使用する場合 すべて正常に動作します。しかし、暗黙的に「IDbContext db = new PrimaryDbContext();」を使用すると、例外が発生すること:
タイプ 'ConfiguratorMvcApplication.DomainModels.ProviderHardware' の定数値を作成できません。このコンテキストでは、プリミティブ型 (Int32、String、および Guid など) のみがサポートされます。
要約すると、IQueryable で DbSet を置き換えることはできません。この場合、ユニットテストをどのように使用できますか? 誰かがこの問題を解決してくれることを願っています... よろしくお願いします!
entity-framework-4 - EntityFramework-OnModelCreating with Model First
コードを生成するためのテキストテンプレートを使用してEntityFrameworkモデルを設定しています。ただし、そのうちの1つはDBContext
を含むを作成しますOnModelCreating
。
同じオーバーライドを持つ部分クラスは機能しないため、これをどのように拡張しますか。
asp.net-mvc-3 - ADO.NETDbContextGeneratorを使用してコードを生成した後にコードを再編成する
asp.netmvc3とエンティティフレームワークデータベースの最初のアプローチを使用してサンプルのNorthwindデータベースを使用してアプリケーションを作成しているとします。そのために、新しいasp.net mvc 3プロジェクトを開いてから、ado.netエンティティデータモデルを追加しています。すでに作成されているので、既存のデータベースから生成しています。その後、ado.netDbContextジェネレーターを使用してコードを生成しています。これらには、すべてのモデルとDbContextファイル(この場合はNorthwindContext)が含まれます。
今私が直面している問題は、コードの再編成にあります。すべてのモデルは、プロジェクトのModelフォルダーに配置する必要があります。Modelフォルダーにコードを生成しても、NorthwindContextクラスも生成されます。これは、NorthwindContext.ttファイルの下にあり、NorthwindContext.csが生成されます。このファイルは、データへのアクセスに使用するため、DALフォルダーに再配置する必要があります。ここで、DALフォルダーにドロップするだけで、コード生成が自動的に停止します(NorthwindContext.csファイルにコードは残りません)。この問題をどのように解決できるか?????
entity-framework - 関連するエンティティを更新する Entity Framework DbContext
DbContext といくつかの POCO エンティティで EF を使用しています
ここで、見積もりを更新する必要があります
更新されない quoteDB.ContactPersonAssigned を除いて、quotationDB のすべてのフィールドが更新されます。なんで?実際のオブジェクトは正しく更新されますが、変更はデータベースに保存されません。
entity-framework-4 - DbContext SaveChanges ステートメントの実行順序
Ordinal 列を持つテーブルに一意のインデックスを持つテーブルがあります。たとえば、テーブルには次の列があります。
TableId、ID1、ID2、序数
一意のインデックスは、ID1、ID2、序数の列にまたがっています。
私が抱えている問題は、データベースからレコードを削除するときに、序数を再配列して、再び連続するようにすることです。私の削除機能は次のようになります。
問題は、 Context.SaveChanges() を呼び出すと、ステートメントが渡された順序とは異なる順序で実行されるように見えるため、一意のインデックスが壊れることです。たとえば、次のことが起こります。
- 序数の並べ替え
- レコードを削除する
それ以外の:
- レコードを削除する
- 序数の並べ替え
これは EF の正しい動作ですか? もしそうなら、この動作をオーバーライドして実行順序を強制する方法はありますか?
うまく説明できていなかったら、教えてください...
c# - ninject カーネルをインスタンス化する最適な場所とタイミング
Webフォームアプリでninjectを使用して頭を悩ませようとしています。ただし、「バインディングモジュール」を使用してninjetカーネルをインスタンス化する場所とタイミング、およびWebリクエスト全体でカーネルを保存する必要があるかどうかについては、まだ困惑しています。
global.asax イベント BeginRequest で dbcontext を保存し、後続のリポジトリがそこから dbcontext を取得する他の実装を見てきました。
ninjectで同様のことをする必要がありますか、それとも何かを完全に見逃していますか。
提案された同様の質問のいくつかを読みましたが、それを説明するものを見つけることができなかったので、それは私にとって理にかなっています.
どんな助けでも大歓迎です。
entity-framework - Entity Framework 4.1 で DBContext Generator を使用中にエラーが発生しました
EDMX にインストールされた Entity Framework 4.1 で ADO.NET DBContext Generator を使用すると、次のエラーが発生しました。
エラー: このテンプレートは、コンポーネント アセンブリ 'Microsoft.Data.Entity.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' を読み込もうとしました。この問題とこのテンプレートを有効にする方法の詳細については、プロジェクト テンプレートのカスタマイズに関するドキュメントを参照してください。
VS2010 SP1、NuGet の Entity Framework 4.1、.net 4 クラス ライブラリを使用しています。
何か不足していますか?
「Microsoft Entity Framework June 2011 CTP」がインストールされており、プロジェクト ターゲット フレームワークから選択すると、テンプレート「DBContext Generator」が機能します。通常の .net Framework 4.0 で動作させるには、CTP をアンインストールする必要があるということですか?