問題タブ [linq-to-sql]

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 投票する
4 に答える
5002 参照

database - 自己参照テーブル用の LINQ to SQL?

自己参照カテゴリ テーブルがあります。各カテゴリには、CategoryID、ParentCategoryID、CategoryName などがあります。また、各カテゴリには任意の数のサブカテゴリを含めることができ、それらの各サブカテゴリには任意の数のサブカテゴリを含めることができます。したがって、基本的にツリーは X レベルの深さになる可能性があります。

次に、製品がリーフ (サブ) カテゴリに関連付けられます。LINQ to SQL を使用して、特定のカテゴリ (すべてのリーフの子孫に関連付けられているすべての製品) のすべての製品を取得する方法はありますか?

これは再帰的な問題のように感じます。代わりにストアド プロシージャを使用した方がよいでしょうか。

0 投票する
15 に答える
70533 参照

.net - SQL Server CompactEditionデータベースでLINQto SQLの「行が見つからないか変更されていない」例外を解決するにはどうすればよいですか?

LINQ to SQL接続でいくつかのプロパティを更新した後に(SQL Server Compact Editionに対して)DataContextに対してSubmitChangesを実行すると、「行が見つからないか、変更されていません」というメッセージが表示されます。ChangeConflictException。

クエリは次のSQLを生成します。

明らかな問題はWHERE0 = 1です。レコードがロードされた後、「deviceSessionRecord」のすべてのプロパティが主キーを含むように正しいことを確認しました。また、「ChangeConflictException」をキャッチした場合、これが失敗した理由に関する追加情報はありません。また、この例外がデータベース内の1つのレコード(更新しようとしているレコード)でスローされることも確認しました。

奇妙なことに、コードの別のセクションに非常によく似た更新ステートメントがあり、次のSQLが生成され、SQL ServerCompactEditionデータベースが実際に更新されます。

データベーススキーマとLINQクラスを生成するDBMLの両方で、適切なプライマリフィールド値が識別されていることを確認しました。

これはほぼ2つの部分からなる質問だと思います。

  1. なぜ例外がスローされるのですか?
  2. 生成されたSQLの2番目のセットを確認した後、競合を検出するには、すべてのフィールドをチェックするのがよいようですが、これはかなり非効率的だと思います。これは常にこれが機能する方法ですか?主キーだけをチェックする設定はありますか?

私は過去2時間これと戦ってきたので、助けていただければ幸いです。

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

c# - LINQtoSQLの関連付け-「プロパティに一致するタイプがありません」

特定のテーブルの2つのフィールドを、別のテーブルの同じフィールドにリンクしようとしています。私は以前にこれを行ったことがあるので、今回は何が悪いのか理解できません。

ともかく:

関連付けはFK-Table2aでは機能しますが、FK-Table2bでは機能しません。実際、LINQ to SQLにロードすると、Table1.Idに関連付けられているTable2.Idが表示されます。これを変更しようとしたり、FK-Table2bの新しい関連付けをTable2.Idに追加したりすると、「プロパティに一致するタイプがありません」と表示されます。

これは他のプロジェクトでも機能します-多分私は.dbmlをコピーする必要がありますか?

何か案は?

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

sql - Linq で SELECT FROM myTable WHERE id IN (SELECT...) を記述するにはどうすればよいですか?

これをLinqでどのように書き換えますか?

したがって、平易な英語では、TableA の Id が 2 番目のクエリの結果セットにある TableA から Id と Name を選択したいと考えています。

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

asp.net - ベスト プラクティス: データ アクセスのための LINQ To SQL

私が取り組んでいる Web アプリケーションの一部は、管理者から 1...n 人のユーザーへのメッセージを表示する領域です。LINQ to SQL クラスを含む DataAccess プロジェクトと、UI である Web サイト プロジェクトがあります。私のデータベースは次のようになります。

ユーザー -> MessageDetail <- Message <- MessageCategory

MessageDetail は、IsRead フラグも含む結合テーブルです。

メッセージのリストはカテゴリ別にグループ化されています。ページに 2 つの入れ子になった ListView コントロールがあります。メッセージを一覧表示するページの分離コードには、次のコードがあります。

このコードは機能しますが、LinqDataSource コントロールのコード ビハインドにこのような巨大な LINQ ステートメントを貼り付けることは、私にはうまくいきません。

私はまだクエリをユーザー インターフェイスにコーディングしているようですが、今は SQL ではなく LINQ になっています。ただし、L2S クラスと UI の間に別のレイヤーを構築すると、LINQ の柔軟性の一部が損なわれると思います。データを取得するために記述するコードの量を減らすことが重要ではないでしょうか?

私が見ていない中間点の可能性はありますか、それとも LINQ to SQL の使用方法を誤解しているだけですか? アドバイスをいただければ幸いです。

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

linq-to-sql - LINQ to SQL を使用したプロジェクトの配置

私は LINQ to SQL を使用して winforms アプリケーションに取り組んでおり、ワークステーションで SQL Express インスタンスを使用してアプリを構築しています。プロジェクトの最終的なインストールは、適切な SQL Server 2005 になります。

データベースは同じ名前で、すべてのテーブルは同じですが、ホスト名が異なります。

アプリをあるマシンから次のマシンに動作させる唯一の方法は、Visual Studio でコードを再度開き、.mdbl から SQL Express インスタンスを参照するすべてのオブジェクトを削除し、プロジェクトを保存し、接続することです。すべての参照をドラッグして元に戻し、リリース用にアプリケーションをもう一度再構築します。

ここでの回答は、app.config/web.config ファイルを簡単に変更できることを示唆しています。これは asp.net で機能しますが、これは winforms アプリケーションです。Visual Studio でアプリを再度開くことなく、LINQ to SQL アプリで新しいデータベースを使用する正しい方法は何ですか?

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

linq-to-sql - LINQ とデータベースのアクセス許可

私はまだLINQに頭を悩ませ、SQLデータベースにアクセスしようとしています。

私はいつも、データに対するストアド プロシージャの実行権限のみを持つべきだと教えられてきました。

選択/挿入/更新/削除を行うべきではありません。

(これはパフォーマンスとセキュリティのためです)

LINQ からデータを取得するには、明らかにアクセス許可を選択する必要があります。ストアド プロシージャを LINQ で使用できることは知っていますが、結合を行うことができないので、何がポイントなのですか?

私は何かを逃しましたか?

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

linq - LINQ to SQL クエリの最適化

次のようなクエリがあります。

注文とそれを作成したユーザーの情報を出力する必要があります。

これにより、注文を持ち込むための SQL クエリと、顧客を持ち込むための注文ごとに 1 つのクエリが生成されます。クエリを最適化して、注文と顧客を 1 つの SQL クエリで取得することはできますか?

ありがとう

UDPATE: sirrocco の提案により、クエリをこのように変更したところ、機能しました。1 つの選択クエリのみが生成されます。

sirocoさん、ありがとうございます。

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

linq-to-sql - LINQ to SQL がリレーションシップに基づいてコレクションを生成しない理由は何ですか?

2 つのエンティティ (e1 と e2) の間に関係があり、e1 には e2 のコレクションがありますが、(e2 と e3) の間に同様の関係が設定されていますが、e2 には e3 のコレクションが含まれていません。起こる?これを理解しやすくするために投稿できるものはありますか?

編集: e1 と e2 の関係がしっかりしていて、e2 と e3 の関係が点線になっていることに気付きました。何が原因ですか? それは関連していますか?

0 投票する
9 に答える
76378 参照

sql - LINQ to SQL で IN サブクエリを処理するにはどうすればよいですか?

私はこれに少し立ち往生しています。基本的に、LINQ to SQL で次の SQL クエリのようなことをしたいと考えています。

どんな助けでもありがたく受け取られます。