問題タブ [linq-to-entities]
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.
vb.net - linq2entities でリレーションを自動的に読み込む
モデル内の 2 つのエンティティ間に関係がある場合:
[グループメンバー] (*) ----- (1) [ユーザー]
LINQ との関係からアイテムを選択しようとします。
_user.GroupMember のエンティティからエンティティを選択
次のステートメントで最初に関係をロードしない限り、常に空の結果が得られます。
_user.GroupMember.Load()
このようなリレーションのロードを回避する方法はありますか?
entity-framework - Entity Frameworkでnull可能な外部キーフィールドを選択する方法は何ですか?
null 許容の parentId フィールドによって、それ自身への外部キーを持つカテゴリ テーブルがあります。Entity-Framework では、関係が作成されると、エンティティは関係フィールドなしで生成されます。つまり、Category テーブルで parentId-Id 関係を作成した私の例では、生成された Category エンティティには、int 型の Id プロパティと、Category 型の ParentCategory プロパティがあり、ParentId プロパティはありません。これにより、クエリが難しくなります。
そのため、カテゴリのサブカテゴリを選択したいときに問題があります。そのために以下の方法を使用します。
しかし、ルートカテゴリを選択したい場合、これは機能しません。これを行う方法は何ですか?
ところで、Linq to Sql のように int 型の Id プロパティ、int 型の ParentId 、Category 型の ParentCategory プロパティでエンティティを生成する方法はあるのだろうか。
.net - Linq 2 SQL から Linq 2 エンティティに移行するには?
linq2sql から linq2entities と ADO.net Entity Framework (ここでは L2E と呼ばれます) に移行したい人のためのリファレンスを開始したいと思います。この二つのどちらが優れているか議論したくありません。あるものから別のものに移行したい人のために、これら 2 つの違いのリストを作成したいだけです。
基本的なことは簡単です。linq2sql データ クラスを削除し、ado.net モデル (データベースから作成) を追加します。「エンティティ」の名前を以前のデータコンテキストの名前に変更します。
さて、違い。たとえば、L2S で変更を永続化 (保存) するには、次を使用します。
L2E では、これを次のように変更する必要があります。
2 番目の例では、L2S に新しいレコードを挿入するには、次のようにします。
L2E では、これを次のように変更する必要があります。
他のコード スニペットについては、using (...) 部分と SubmitChanges/SaveChanges は毎回同じなのでスキップします。
変更されたオブジェクトを L2S のデータコンテキスト/モデルにアタッチするには(タイムスタンプを使用):
L2E では:
変更されたオブジェクトを L2S のデータ コンテキスト/モデルにアタッチするには (元のオブジェクトを使用) :
L2E ( MSDN - 切り離されたオブジェクトに加えられた変更を適用する):
L2S でレコードを削除するには:
L2E では:
L2S でのデバッグ用に作成された SQL コマンドを表示するには:
L2Eでは、クエリの SQL を表示できます(TFD のおかげです)。
残念ながら、SaveChanges() の呼び出しで生成された SQL を出力する方法が見つかりませんでした。これには SQL プロファイラーを使用する必要があります。
L2S が存在しない場合にスキームからデータベースを作成するには:
L2E では:
L2S でデータベースに対して SQL コマンドを実行するには:
L2E では:
EF でデータベースに対して eSQL コマンドを実行するには (eSQL は DDL または DML (alter、Insert、update、delete) コマンドをまだサポートしていないことに注意してください):
コマンド テキストは Entity SQL であり、T-SQL と 100% 同じではありません。
(TFDのおかげで)
同じ接続で DDL/DML コマンドが必要な場合は、データベース接続を自分で作成し、自分で作成した db 接続を使用して EF に接続し、この接続を DML コマンドに使用する必要がある場合があります。きれいではありません。自分で見てください:
新しく作成された L2S クラスのデフォルト値を提供するには、部分メソッド OnCreated をオーバーライドします。
L2E では、テーブル クラスのデフォルト コンストラクタを作成するだけです。
次の例は、2 つのテーブル間の 1:n 関係に関するものです。ここでは SQL でテーブルを定義しているので、私が何について書いているかがわかります。
L2S の対応する MySubTable を使用して MyTable にレコードを挿入する:
L2E で非常によく似ています:
L2Sで subtable を検索するには、次を使用できます。
L2E では、関係列にアクセスできません。
(もちろんこちらも使えます)
(奇妙な補足: _searchForTable は、これが機能するために EF にアタッチする必要はありません。)
その他の注意事項:
L2S では、LINQ でさまざまな関数を使用できます。L2E でカスタム関数を使用すると、NotSupportedException が発生します。だから、代わりに
L2Eでは、使用する必要があります
L2S はデータベースから自動生成された ID などの自動生成された値を読み取ることができますが、L2E ではこれは SQL 型 ID を使用してのみ機能するようです。
(この投稿では、私がそれらに出くわしたり、誰かが回答に追加したりするたびに、より多くの違いを収集します)
entity-framework - Entity Framework モデルを嘲笑していますか?
プロジェクト全体に散らばっている LINQ to Entities コードを取り除くことなく、モデル クラスを使用するコードをテストできるように、EF モデルをモックすることはできますか? それとも、代わりにモデルがヒットするためのテスト データベースをセットアップする必要がありますか?
c# - 匿名タイプを選択するためのLINQ式ツリーの作成方法
式ツリーを使用して、次のselectステートメントを動的に生成したいと思います。
生成する方法を考え出しました
しかし、selectラムダで複数のプロパティを指定できるコンストラクター/オーバーロードが見つからないようです。
linq-to-entities - 複数のデータベースにまたがる ADO.Net Entity Framework
Linq2Sql では、ソースにデータベース名を追加するだけで、データ コンテキストを複数のデータベースに接続できます。
Linq 2 Entities / ADO.net Entity Framework でこれを達成する方法はありますか? データベース名をテーブル名に追加できますか?
「スキーマ」を dbo からMyDatabase.dboに変更しようとしましたが、EF はこれをカプセル化します
'Schema' を'MyDatabase].[dbo'に変更するようなトリッキーはエスケープされます
(2つに注意して]]
ください。)
linq-to-entities - 関連付けを使用してエンティティオブジェクトに新しいLINQを作成する
LINQ to Entitiesを使用して、別のテーブルへの外部キーを持つテーブルに新しいレコードを追加する方法に頭を悩ませようとしています。説明してみます:
2つのテーブルを持つ単純なデータベースがあるとします。たとえば、一方のLibraryItemともう一方のLibraryItemStatusを呼び出します。LibaryItemにはLibraryItemStatusテーブルへの外部キーがあるため、アイテムにステータスを割り当てることができます。
私の質問は、LINQ To Entitiesを使用して新しいLibraryItemを作成し、それをステータスに関連付けるにはどうすればよいですか?以下の私のコードは間違っているに違いありませんが、役立つ例が見つかりません。
c# - LINQ to SQL を使用するように Entity Framework を使用できますか?
私は LINQ to SQL の実験を始めました。基本的に、LINQ マッピング デコレータを使用してクラスを作成しています。これにより、db テーブル スキーマのどの部分をクラスに組み込むかを選択します。
簡単な例:
プロジェクトの制約により、モデリング ツールを使用しておらず、頼るつもりもありません (スキーマの変更が処理される方法と、既存のデータベース スキーマがあり、それが少し有機的で厳密ではないため)。
スキーマ情報ファイルや多数の個別のコード ファイルを含めることなく、Entity Framework でこの柔軟性を実現する方法はありますか?
次に、基になる複数のテーブルを「使用する」クラスも作成できますか?
誰でもこれに関するドキュメントを教えてもらえますか?