問題タブ [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.

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

c# - Entity Frameworkでリレーションシップを作成するには、selectクエリを実行する必要がありますか?

Userとの関係を持つBlogオブジェクトを作成したい。関係を作成するには、最初にユーザーエンティティを選択してから、ブログオブジェクトのユーザープロパティに設定する必要がありますか?Entity Frameworkのサンプルでは、​​UserオブジェクトをViewStateに設定し、基本的なキャッシュなどの関係を作成する必要があるときにそれを取得することを提案しています。

これは必要ですか?これを行う他の方法はありますか?(linq-to-sqlのように、selectなしでのみ外部キーを設定します。)

ここに私のコードサンプルがあります。

編集(別の質問の機会を与えるため):不明な点やその他の点はありますか?

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

c# - エラー: ObjectStateManager で見つからないため、オブジェクトを削除できません

ここで Entity Framework のハンドルを取得しようとすると、スピード バンプにぶつかっています...正常に動作し、テストされた Get() メソッドがありますが、私の Delete メソッドは動作しません。

しかし、次のエラーが表示されます: エラー: オブジェクトが ObjectStateManager に見つからなかったため、オブジェクトを削除できません。

デバッガーを実行しましたが、DeleteObject 内のオブジェクトは正しいです...何が欠けていますか? ありがとうございました。

0 投票する
3 に答える
22500 参照

entity-framework - .edmx図をVS2008からVisioにエクスポートする方法はありますか?

DB構造を見たいが、VSを持っていない人もいますが、これを行う方法はありますか?または、スクリーンキャプチャの外にエクスポートする他の方法(これは巨大な図です)。

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

0 投票する
24 に答える
5717 参照

sql - Linq to SQL は要点を見逃していませんか? ORM マッパー (SubSonic など) は次善のソリューションではありませんか?

Linq to Sql やその他の ORM マッパーについて私が考えたことについて、コミュニティに意見を求めたいと思います。

Linq to Sql と、C# と SQL の間の「インピーダンスの不一致」に対処するよりも、ネイティブの開発言語でデータ アクセス ロジック (または一般的な CRUD 操作) を表現するというアイデアが好きです。たとえば、ビジネス レイヤーの Event インスタンスの ObjectDataSource 互換リストを返すには、以下を使用します。

古い SQL-to-C# コンストラクトを使用してこれを実装する場合、Command クラスを作成し、EventID パラメーターを追加して ("@EventID" 引数を記述する文字列を使用)、SQL クエリ文字列をコマンドクラス、コマンドを実行し、(cast-type)nwReader["FieldName"] を使用して、返された各フィールド値を取得し、EventData クラス (yuck) の新しく作成されたインスタンスのメンバーに割り当てます。

だから、人々は Linq/SubSonic/etc を好むのです。そして私は同意します。

しかし、全体像を見ると、間違っていることがたくさんあります。私の感覚では、Microsoft も何か問題を認識しているため、Linq to SQLを廃止し、人々を Linq to Entities に移行させようとしているのです。ただ、マイクロソフトは悪い賭けに賭けていると思います。

それで、何が悪いのですか?

問題は、Linq to Sql を見て、それが真のデータ管理ツールではないことに気付く、特に Microsoft のアーキテクチャ宇宙飛行士がいることです。 . これは、Linq to Entities の背後にある野心、Linq の革新的な性質 に関するブログ投稿、さらにはLinqPad の挑戦に表れています。

そして、それに関する問題は、SQL が問題であると想定していることですつまり、軽度の不快感 (SQL と C# の間のインピーダンスの不一致) を軽減するために、Microsoft は、バンドエイド (Linq to SQL など) がうまく機能する場合に、宇宙服 (完全な分離) に相当するものを提案しました。

私が見る限り、開発者はリレーショナル モデルを習得し、それを開発作業に賢く適用するのに十分なほど賢いです。実際、Linq to SQL、SubSonic などはすでに複雑すぎます。学習曲線は、SQL 自体を習得することとそれほど違いはありません。近い将来、開発者はSQL とリレーショナル モデルを習得する必要があるため、現在、 2 つのクエリ/CRUD 言語の学習に直面しています。さらに悪いことに、Linq は多くの場合テストが難しく (クエリ ウィンドウがありません)、実行している実際の作業から 1 つのレイヤーを削除し (SQL を生成します)、次のような SQL 構造のサポートが (せいぜい) 非常に不器用です。日付処理 (DateDiff など)、「Having」、さらには「Group By」。

代替手段は何ですか?個人的には、Linq to Entities のようなデータ アクセス用の別のモデルは必要ありません。Visual Studio で単純にウィンドウをポップアップし、SQL を入力して検証し、ボタンを押して C# クラスを生成または補足し、呼び出しをカプセル化することをお勧めします。あなたはすでに SQL を知っているので、次のように入力することを好まないでしょうか。

最終的に、A) プロパティとして EventID および Title フィールドが含まれ、B) 'Location' 文字列を引数として受け取り、List<EventData>? オブジェクト モデルについては慎重に検討する必要がありますが (上記の例は明らかにそれを扱っていません)、インピーダンスの不一致を排除しながら SQL を使用するという基本的なアプローチは、私にとって非常に魅力的です。

問題は次のとおりです。私は間違っていますか? Microsoft は SQL インフラストラクチャを書き直して、SQL やリレーショナル データ管理をこれ以上学ぶ必要がないようにする必要がありますか? この方法で SQL インフラストラクチャを書き直すことはできますか? それとも、パラメーターを設定してデータ フィールドにアクセスする手間を省くために、SQL の上に非常に薄いレイヤーを配置するだけで十分だと思いますか?

更新2 つのリンクをトップに宣伝したかったのは、それらが私が求めているものの重要な側面を捉えていると思うからです。まず、CodeMonkey は「The Vietnam of Computer Science」というタイトルの記事を指摘しています。 読み始めるのに少し時間がかかりますが、非常に興味深い読み物です。次に、AnSGri は Joel Spolsky の著名な作品の 1 つであるThe Law of Leaky Abstractions を指摘しています。トピックとは正確には一致しませんが、近く、素晴らしい読み物です。

更新 2: ここには多くの優れた回答があり、「正しい」回答の選択は純粋に主観的ですが、ocdecio に「回答」を与えました。この場合、彼の答えは、現在のテクノロジーの状態を考えると、本当にベスト プラクティスであると私が考えるものと一致しています。ただし、これは進化することを完全に期待している領域であるため、状況が変わる可能性があります. 貢献してくれたすべての人に感謝したいと思います。思慮深い回答をしてくれたと思うすべての人に賛成票を投じました。

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

linq-to-sql - Linq 式ツリーを使用して柔軟な高度な検索を設計するためのパターンまたは手法

ASP.NET/SQL Server 2005 アプリケーションに「高度な検索」機能を追加したいと考えています。理想的には、テーブル駆動にしたいと思います。たとえば、検索したいテーブルに新しい列が追加されてスキーマが変更された場合、新しい列が検索可能なフィールドとして追加されたことを UI に反映させたいと考えています。検索可能なフィールド、そのタイプ、関連するルックアップなどを含むいくつかのコントロール テーブルを想像できます。

これらのテーブルは、UI を構築するときに参照できます。私の質問は、動的 SQL を作成するための最良のアプローチにあります。1 つの方法は、パラメーター化された SQL ステートメントを自分で作成することです。しかし、私は Linq に興味をそそられており、どういうわけか、System.Linq.Dynamic 名前空間 (およびLinq 式ツリー) がより洗練された堅牢なソリューションを提供するのではないかと思います。

うまくいけば、そのようなソリューションは、Linq to Sql または Linq to Entities のいずれかで機能します。このパスを調査するのは正しいでしょうか、それともこの問題空間は実際には式ツリーのユース ケースの 1 つではありませんか?

0 投票する
7 に答える
36672 参照

asp.net-mvc - 最初に読み込まずに Entity Framework モデルからオブジェクトを削除するにはどうすればよいですか?

この質問に対する答えをどこかで見たことがあると確信していますが、SOまたはGoogleで数回検索しても見つからなかったので、とにかくもう一度尋ねます...

Entity Framework では、データ オブジェクトを削除する唯一の方法は

ただし、このアプローチでは、オブジェクトを削除するためだけに、まずコントローラーにオブジェクトをロードする必要があります。ID のみを参照するビジネス オブジェクトを削除する方法はありますか?

Linq または Lambda 式を使用するよりスマートな方法があれば、それも問題ありません。ただし、主な目的は、データを削除するためだけにデータをロードしないようにすることです。

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

.net - エンティティへのLINQとエンティティの新しいインスタンスの作成

アプリケーションでCustomerエンティティの新しいインスタンスを作成しようとしていますが、いくつか問題があります。このエンティティにはいくつかのナビゲーションプロパティがあり、それぞれに独自のナビゲーションがあります。プロパティ。たとえば、各CustomerエンティティにはAddressエンティティがあり、各AddressエンティティにはPhoneNumberエンティティなどがあります。これらすべてのエンティティの新しいデータセットを取得する方法がわかりません。私は次のことを試しました:

この時点で、Addressがnullであるため、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが発生します。私は当初、新しい顧客エンティティを作成すると、関連する各エンティティの新しいインスタンスが自動的に作成されると想定していましたが、そうではないはずです。誰かがこれがどのように機能するかについてのコード例を提供できますか?ありがとう。

0 投票する
5 に答える
1994 参照

c# - ローカル Sql Express サーバーへの同時 SqlConnection および EntityConnection

ほとんどのデータベース操作に Linq2Entity を使用しています。ただし、データベースの作成、テーブルの作成、および最初のデータの挿入には、プレーン SQL ファイルを使用します。したがって、SqlConnection と EntityConnection の両方が必要です。残念ながら、エンティティ フレームワークは、Sql サーバーがパイプの反対側でリッスンしていないと不平を言い始めます。

ここで何が問題なのかわかりません。ユーザーのインスタンス化が原因である可能性があります。SqlConnection のプールをクリアしたり、接続インスタンスを破棄したりしても役に立ちません。

私が使用している接続文字列は次のとおりです。

"Data Source=.\SQLEXPRESS; Initial Catalog=dbname; Integrated Security=SSPI;"

アップデート:

データベースのメンテナンスのために EntityConnection を使用しようとしましたが、問題が発生しています。EntityConnection を使用してデータベースを作成したり、データベースを削除したりできません。次の構文は EntityConnection ではサポートされていませんが、ms SQL Express への SqlConnection では正常に機能します。

また、何らかの理由で、EntityConnection では、データベースを削除するために必要なデータベースを変更できません。データベースとテーブルを作成するには、まだ SqlConnection が必要です。

ローカルの ms SQL Express データベースで SqlConnections と EntityConnections を共存させる方法はありますか?

ありがとう、ウーター

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

nhibernate - データベースに変更が加えられた場合、ORM レイヤーをどのように管理しますか?

.dbml (Linq2Sql)、.edmx (Linq2Entities)、または .hbm.xml (NHibernate) を自動更新しない理由を理解しています。これらの各 ORM ソリューションでは、データベースに変更がある場合、これらのファイルを更新する必要があります。何も壊れないことが 100% 確実な場合、これらのファイルを自動的に更新する方法はありますか?

私は RoR の移行について十分に理解しています。.NET の世界に信頼できる移行ツールはありますか?

一般に、データベース設計の機敏性を維持し、これらのマッピング ファイルを何度も手動で再作成しないようにするにはどうすればよいでしょうか?

この質問が重複している場合は、リンクを提供してください。私はそれを見つけることができませんでした。

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

c# - Linq to ADO.NET エンティティ フレームワークで全文検索 (FTS) を行うにはどうすればよいですか?

SQL Server 2008 には全文検索が組み込まれているため、これを使用して Web サイトの検索を強化したいと考えています。ORM に ADO.NET エンティティ フレームワークを使用することも考えていますが、Linq to ADO.NET エンティティ フレームワークを使用して全文検索 (FTS) を行うにはどうすればよいのでしょうか?

ADO.NET エンティティ フレームワークでのサポートはありますか、それとも全文検索の述語を使用する関数を作成する方法を使用して立ち往生していますか?