問題タブ [ef-model-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.
c# - LINQ が正しくない SQL を生成する (存在しないテーブルへの参照)
LINQ to Entity を使用する MVC3 プロジェクト、および Entity Framework 4 Code-First。
別の投稿 ( LINQ を使用してリスト内のすべてのタグに属する製品を返す) で、データのサブセットを返す LINQ ステートメントの作成について支援を受けました。
LINQ は構文的に正しく、コンパイルされますが、正しくない SQL が生成されます。具体的には、存在しないテーブルを参照します。テーブル名を直せば正しいデータが返ってくるので、LINQは正しいようです。
この長い投稿がこれ以上長くならないようにするために、オブジェクト クラス (Product、Tag、および ProductTag) は投稿しませんが、以前の質問にリストされています。リンク
リンク:
以下は、正しくない SQL コードと正しい SQL コードです。
不適切な SQL が存在しないテーブルを参照している
不正なフィールドと同様に
これらを「[dbo].[ProductTag]」および「[ExtentN].[TagId]」に修正すると、SQL が正しく実行され、正しいデータが返されます。
LINQ によって生成された (そして欠陥のある) SQL
修正された SQL
繰り返しますが、SQL の唯一の変更点は次のとおりです。
データベースに dbo.TagProduct という名前のオブジェクトがないこと、およびコード内に TagProduct への参照が存在しないことを確認したことに注意してください (存在しないこともありません)。
LINQ ステートメントに問題がありますか、それとも LINQ のバグですか? 私はそれを完全に破棄してストアドプロシージャを作成するだけで大丈夫ですが、修正を見つけたいと思っています。
長い投稿に感謝し、お詫び申し上げます。
編集
問題はエンティティ モデルの欠陥であることが判明し、多対多の関係にあるテーブル間に過剰で不必要なナビゲーション プロパティが含まれていました。Slauma の詳細な回答は、何が起こっているのかを理解する上で重要でした。
新しいモデルは次のとおりです。
.net - Entity Framework - モデルファースト、多対多マッピング
データベースには、2 つのテーブルUser
とOrganization
ブリッジング テーブルがありますUsers_Orgs
。
テーブルには、 とのUsers_Orgs
2 つの列で構成される複合キーがuserId
ありますorganizationId
。デザイナーを使用して関連付けを作成すると、参照制約用に と の 2 つのプリンシパルが作成されUsers
ますUsers_Orgs
。問題はUsers_Orgs
制約にあります - と の両方organizationId
で構成されるキーがありuserId
ます。organizationId
はテーブルにないためUser
、マップできず、コンパイルされません。
[削除] ボタンをクリックすると、ダイアログが閉じorganizationId
て、users テーブルの主キー (userId ではない) にマップされます。
既存のデータベースで複合キーを使用して多対多のマッピングを行うにはどうすればよいですか?
.net - MVC3多対多関係とEF4.1モデルファーストでデータを取得する方法は?
私は非常に初心者で、本当に簡単なことをしたいと思っています。何かを見逃していたと思いますが、答えが見つかりませんでした。
EF4.1でマッピングされた多対多の関係を持つ2つのテーブルがあります
そして生成されたコンテキストクラス:
インデックス ビューでは、パックからのデータと、このパックに関連するアクティビティを表示するだけです。
コントローラーは次のとおりです。
これが私の見解でやりたいことです:
これを行うための最良の方法/プラクティスは何ですか? EDMなどで3番目のテーブルを作成することでそれを行うことができますが、ネイティブの多対多の関係を作成する可能性があるという点は何ですか?
当たり前のように思えたら申し訳ありませんが、私にはそうではありません。私はただの初心者です。
c# - ObjectContextはデバッグモードでパブリック、リリースモードで内部
ObjectContextをデバッグモードでパブリックにし、リリースモードで内部にする簡単な方法はありますか?
Linqpadを使用すると、ObjectContextに接続してすばやくテストしたりクエリを実行したりするのに非常に便利なので、開発目的で公開する必要があります。しかし、同じ便利さが一部の賢い顧客に展開された場合の結果については考えたくありません。
.net - エンティティ フレームワーク モデルの最初のタイムスタンプ
Entity Framework ベースのアプリを開発しています。モデルファーストのアプローチを使用しています。並行性の問題を処理したいと思います。多くの記事に書かれているように、タイムスタンプであるフィールドで ConcurrencyMode を固定にすることでそれを行います。現時点では、問題に直面しています - タイムスタンプ型のフィールド (列) を追加できません。モデルでそれを行うにはどうすればよいですか?
ここに書かれているように:
Entity Designer Database Generation Power Pack をインストールしようとしましたが、モデルからタイムスタンプを生成する可能性はまだありません (edmx ファイルで手動で設定しようとしましたが、生成されたデータベースでタイムスタンプ fcolumn を受信していません)。
助けてください。
entity-framework - Model-First で同時実行プロパティを定義する方法
Entity Framework Model を使用しています。まず、同時実行チェック用の列を定義したいと思います。バージョンという名前のプロパティの 1 つで、同時実行モードを「固定」、タイプを「バイナリ」、「StoreGeneratedPattern」を「計算済み」に設定しました。タイムスタンプのような列が必要です。挿入または更新するたびに、データベースがレコードの値を自動生成します。
しかし、レコードを挿入するとき、Version プロパティは null 許容ではないため、値を割り当てないと、SaveChanges は機能しません。どうすれば解決できますか?同時実行プロパティを作成する私の解決策は正しいですか?
前もって感謝します!
asp.net - EntityFrameworkModelFirstで「ホットオアノット」スタイルのデータベースを設計する
映画の間にある種の決闘をデザインして、2つが互いにピッチングされるようにしたいのですが、ユーザーはより良いものを選択してポイントを獲得します。データベースには、決闘したすべての映画と、それぞれ勝った回数のリストが必要です。
映画
決闘
私はこれを設定して、映画エンティティがDuelsと呼ばれる1つのプロパティを持ち、それが1つまたは2つであるかどうかに関係なく、関係するすべての決闘エンティティをフェッチできるようにしようとしています。ContenderOneとContenderTwoは映画にリンクする必要があります。
これを達成する方法はありますか?私は困惑しています。
.net - モデル ファースト アプローチで EF4 移行ツールを使用する
最初にコードを使用する場合、EF 移行ユーティリティは非常に優れているようです。
このブログ投稿に基づいて、モデルファーストを使用するプロジェクトで設定してみました。コマンドを実行するEnable-Migrations
と、次のエラーが発生します。
DbModelBuilder の作成、または Database First または Model First を使用して作成された DbContext からの EDMX の書き込みはサポートされていません。EDMX は、既存の DbCompiledModel を使用せずに作成された Code First DbContext からのみ取得できます。
コードファーストに切り替えることなく EF 移行を使用できるようにする方法はありますか?
c# - C# を使用してエンティティ デザイナー DDL スクリプトを実行するにはどうすればよいですか?
Model-First Entity Designer SQL ファイルを C# で実行する方法をいくつか試しましたが、うまくいきませんでした。ロードして読み取るすべてのコードを含む SQL ファイルがあります。
以下は私のコードです。実行されたすべてのコマンドでエラーが発生します。タイプ であるモデル コンテナの接続プロパティを介して接続を取得していることに注意してください。ただしDbConnection
、それと関係があるかどうかはわかりません。
C# スクリプト:
受信したエラー。私が受け取っているエラーのいくつかは次のとおりです。
エラー 1:
クエリ構文が無効です。識別子「OBJECT_ID」の近く、1 行目、4 列目。
エラー 2:
クエリ構文が無効です。識別子「SCHEMA_ID」の近く、1 行目、4 列目。
.net - 外部キーを複合主キーとして使用して最初のジャンクション テーブルをモデル化しますか?
Job
テーブルとテーブルがあり、多対多を許可Contact
するために別のテーブルを作成する必要がありますが、主キーとして and を使用したいとJobContact
考えています。JobId
ContactId
追加の列を追加できるように、デザイナーで必要です。
これを行う簡単な方法はありますか?