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

entity-framework - 多対多の挿入に失敗する-EntityFramework4.1 DbContext

私はDBファーストメソッドであるEF4.1とDbContextPOCOコード生成を使用しています。

私のデータベースには、以下に示すように多対多の関係があります。

従業員

従業員ID

従業員名

アカウント

アカウントID

アカウント名

EmployeeAccount

従業員ID

アカウントID

新しい従業員を挿入し、既存のアカウントを割り当てようとすると問題が発生するため、基本的に次のように実行します。

これが(誤って)実行しているSQLは、新しい[Account]レコードを挿入しようとしていますが、これは制約違反で失敗しています。もちろん、新しい[Account]レコードを挿入するべきではなく、[Employee]を挿入した後にのみ新しい[EmployeeAccount]レコードを挿入する必要があります。

何かアドバイス?ありがとう。

0 投票する
4 に答える
1231 参照

entity-framework - Entity Framework 4.1-データベースファーストアプローチ-主キーフィールドの列名を見つける方法は?

アプリケーションのDALにEF4.1を使用しており、POCPエンティティでDbContextテンプレートジェネレーターを使用しています。モデルはデータベースから作成されるため、すべてのフィールド/ PK /FK/リレーションはデータベースですでに定義されています。エンティティのテーブルのフィールドをコードで見つける必要があります。一部のテーブルには単一のフィールドPKがあり、他のテーブルには複合PKがある場合があります。必要なのは、エンティティのリストを返すメソッドを用意することです。すべてのフィールド名が主キーを構成します。DbContextからでも、エンティティからでも構いません。以下のように、テンプレートをカスタマイズしてPOCOエンティティでメソッドを生成することもできます。

しかし、PKを構成するフィールド名を見つける方法がわかりません。
助言がありますか?

ありがとうございました

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

entity-framework - もう 1 つの多対多の問題 - Entity Framework 4.1 DbContext

私はDBの最初の方法であるEF 4.1とDbContext POCOコード生成を使用しています。

私のデータベースには、以下に示すように多対多の関係があります。

従業員

従業員ID

従業員名

アカウント

アカウントID

アカウント名

従業員アカウント

従業員ID

アカウントID

問題は、従業員を更新しようとしているときに発生し、アカウントの割り当てを既存のアカウントに変更するため、基本的には以下のようにしています。

生成されている SQL は、[Employee] テーブルで更新を実行しています。[EmployeeAccount] には何も実行されていません。削除も挿入もありません。

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

sql-server - クエリ専用の MVC 3 + Entity Framework での外部 SQL Server アクセス

MVC 3 と EF 4 を使用してシステムを開発しています。このシステムでは、外部データベースに既に存在する情報を検索する必要があります。

プロジェクトの情報をデータベースに保存して問題ありません。その上でモデルを定義し、DbContext がサーバー上にテーブルを作成できるようにしました。

問題は、外部データベースからいくつかのデータをクエリしようとしたときです。次の適切な場所に接続文字列を追加しましたWeb.config

この外部データベースからすべてのモデルを再作成するという過負荷なしに、私のプロジェクトでこのサーバーへのクエリをいくつか作成することは可能ですか? コマンドを使用してコードでこの接続文字列を回復できることはわかってSystem.Configuration.ConfigurationManager.ConnectionStrings["ExtDBConnectionString"].ConnectionStringいますが、接続を作成してクエリをインスタンス化するにはどうすればよいですか?

前もって感謝します!

編集: @rouen が私の注意を喚起しました。それらは同じスキーマを共有していません! 外部データベースはレポートの出力です。そのため、プロジェクトでそれをトラバースして、関連する行をローカル データベースにインポートする必要があります。

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

c# - EF4.1OnModelCreatingは呼び出されません

OnModelCreatingテーブルなどを構成できるようにEF4.1が呼び出されないという問題があります。既存のデータベースがあります。これが私の接続文字列です:

これが私のクラスから継承されたものDbContextです:

私はオンラインで読んだり読んだりしましたが、何が問題なのか指摘できません。はOnModelCreating呼び出されないため、何かをクエリしようとすると、エンティティ/クラス(Vehicle、VehicleMake、VehicleModel)が現在のコンテキストに存在しないという例外が発生します。

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

c# - DbContextはICollectionナビゲーションプロパティを初期化していますが、他のプロパティは初期化していない

持っている

ClassOneを作成するとmyDbCntxt.ClassOneSet.Create();、ClassTwoCollectionが初期化されます。

ClassTwoを作成する場合:myDbCntxt.ClassTwoSet.Create();ClassThreeCollectionとClassFourCollectionAsPrimaryはnullです。

なぜ?

プロキシの作成が有効になっていて、プロキシクラスとして生成されたクラス名を確認できます。私は自分の財産を飾りすぎていることを知っていますが、それは今日の問題ではありません。

私が理解したいのは、ClassTwoの場合、DbContextから作成したときにコレクションプロパティが初期化されない理由だけです。

ありがとう


更新

問題は、実際には、ClassTwoで仮想として宣言されていない別のメンバーが存在することでした。コレクションプロパティをプロキシで初期化するには、すべてのパブリックメンバーが仮想である必要があるというルールがあると思います。

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

entity-framework-4.1 - DbContext および接続文字列 (プロバイダーは ProviderManifestToken 文字列を返しませんでした)

接続文字列を DbContext コンストラクターに渡す方法はありますか。アプリまたは web.config に構成設定を含めるという考えは本当に嫌いです

EF モデルを含む dll を参照する場合は、DLL がどこに移動しても、構成を中央の場所に置いて、コンストラクターがその設定にアクセスするのではなく、そのばかげた構成をコピーすることに注意する必要があります。

これは可能ですか、それとも私たちはこの欲求不満と一緒に暮らすことを余儀なくされていますか? すべての EF モデルが Web アプリケーションまたは exe に存在するわけではありません。

ありがとう

更新: このエラーは、構成ファイルに接続文字列がないことに関連していると思いました。SqlConnection オブジェクトを渡していますが、同じエラーが発生します。なぜこのエラーが発生するのですか?

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

entity-framework-4.1 - 非SQLEXPRESSインスタンスを持つDbContext

既存のデータベース(SQLEXPRESS以外)に接続しようとしていますが、アクセスしようとするたびに。次のエラーが発生します。The provider did not return a ProviderManifestToken string.

接続文字列を渡すだけで同じエラーが発生したため、コンストラクターにSqlConnectionインスタンスを渡し、コンストラクターで接続をインスタンス化しています。DbContext(DbConnection, bool)どちらのアプローチでも同じエラーが発生します。

これは、完全なSQLServer2008および2005で発生しています。

更新:以下の私の解決策を読んでください。

概要:受信したときに常に内部例外を探しますプロバイダーがProviderManifestToken文字列を返しませんでした

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

entity-framework - EF4.1-DBContextSqlQueryおよびサブクエリ

EF 4.1を使用して、特定のカテゴリで製品テーブルをクエリしたいと思います。以下は私の試みです(これは機能していません):

誰かがこのクエリを手伝ってもらえますか?

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

asp.net-mvc-3 - EF は、ID が設定されている DB のエンティティに InsertFunction がないことを教えてくれますか?

アプリケーションは、データベース ファースト アプローチで Entity Framework 4.1 を使用します。

データベースには、ログ記録用の単純なテーブルがあります。

モデルの OK を EntitySet 'LogEntrys' と Entity LogEntry に変換します。問題は、アプリケーションからテーブルに何かを挿入しようとすると、次のエラーが発生することです:

EntitySet 'LogEntrys' を更新できません。DefiningQuery があり、現在の操作をサポートする要素が要素に存在しないためです。

SO で同様の投稿を見たことがあり、このヒントで説明されているように XML edmx ファイルを編集して解決しようとしました: MSDN ブログのヒント 34、定義クエリを削除しました。キーは、本来あるべきように既に設定されています。

しかし、次のエラーが表示されます。

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

何が問題なのかわからない、または何が間違っているのですか?

何か案は?

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