タグ付けされた質問 「linq-to-sql」

LINQ to SQLは、リレーショナルデータをMicrosoft SQL Serverに格納されたオブジェクトとして管理するためのランタイムインフラストラクチャを提供する.NET Frameworkバージョン3.5のコンポーネントです。


17
最大またはデフォルト?
行を返さない可能性があるLINQクエリから最大値を取得する最良の方法は何ですか?私がやれば Dim x = (From y In context.MyTable _ Where y.MyField = value _ Select y.MyCounter).Max クエリが行を返さない場合、エラーが発生します。私はそれをできた Dim x = (From y In context.MyTable _ Where y.MyField = value _ Select y.MyCounter _ Order By MyCounter Descending).FirstOrDefault しかし、それはそのような単純な要求に対して少し鈍感に感じます。それを行うためのより良い方法がありませんか? 更新:これは裏話です:私は子テーブルから次の適格性カウンターを取得しようとしています(レガシーシステム、私を始めないでください...)。各患者の最初の適格性の行は常に1、2番目は2などです(明らかに、これは子テーブルの主キーではありません)。そこで、患者の既存の最大カウンター値を選択し、それに1を追加して新しい行を作成します。既存の子の値がない場合、クエリで0を返す必要があります(1を追加すると、カウンター値1が返されます)。レガシーアプリでカウンター値にギャップが生じる可能性があるため(可能な場合)、子行の生のカウントに依存したくないことに注意してください。質問を一般的すぎるようにしようとする私の悪い。
176 c#  .net  linq  linq-to-sql 

5
LINQ-左結合、グループ化、カウント
私がこのSQLを持っているとしましょう: SELECT p.ParentId, COUNT(c.ChildId) FROM ParentTable p LEFT OUTER JOIN ChildTable c ON p.ParentId = c.ChildParentId GROUP BY p.ParentId これをどのようにしてLINQ to SQLに変換できますか?COUNT(c.ChildId)でスタックしました。生成されたSQLは常にCOUNT(*)を出力するようです。これが私がこれまでに得たものです: from p in context.ParentTable join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1 from j2 in j1.DefaultIfEmpty() group j2 by p.ParentId into grouped select new { ParentId …
166 c#  .net  linq  linq-to-sql 

6
LinqからSQL:複数の左外部結合
LINQ to SQLを使用して複数の左外部結合を使用する方法を理解するのに問題があります。1つの左外部結合の使用方法を理解しています。VB.NETを使用しています。以下は私のSQL構文です。 T-SQL SELECT o.OrderNumber, v.VendorName, s.StatusName FROM Orders o LEFT OUTER JOIN Vendors v ON v.Id = o.VendorId LEFT OUTER JOIN Status s ON s.Id = o.StatusId WHERE o.OrderNumber >= 100000 AND o.OrderNumber <= 200000

6
LINQ to SQL-複数の結合条件を使用した左外部結合
LINQに変換しようとしている次のSQLがあります。 SELECT f.value FROM period as p LEFT OUTER JOIN facts AS f ON p.id = f.periodid AND f.otherid = 17 WHERE p.companyid = 100 左外部結合の典型的な実装(例:into x from y in x.DefaultIfEmpty()など)を見てきましたが、他の結合条件(AND f.otherid = 17)を導入する方法がわかりません 編集 AND f.otherid = 17条件がWHERE句ではなくJOINの一部であるのはなぜですか?そのためf一部の行のために存在し、私はまだこれらの行が含まれたくないかもしれません。条件がWHERE句のJOINの後に適用された場合、希望する動作が得られません。 残念ながらこれ: from p in context.Periods join f in context.Facts on p.id …
148 c#  sql  linq  linq-to-sql  outer-join 


6
LINQ to SQL左外部結合
このクエリはLEFT OUTER結合と同等ですか? //assuming that I have a parameter named 'invoiceId' of type int from c in SupportCases let invoice = c.Invoices.FirstOrDefault(i=> i.Id == invoiceId) where (invoiceId == 0 || invoice != null) select new { Id = c.Id , InvoiceId = invoice == null ? 0 : invoice.Id }

9
LINQ-to-SQLでの大文字と小文字を区別しない文字列比較
大文字と小文字を区別しない文字列比較を実行するためにToUpperとToLowerを使用するのは賢明ではないことを読みましたが、LINQ-to-SQLに関しては代替手段がありません。String.CompareのignoreCaseおよびCompareOptions引数は、LINQ-to-SQLによって無視されます(大文字と小文字を区別するデータベースを使用している場合は、大文字と小文字を区別しない比較を要求しても、大文字と小文字を区別する比較が行われます)。ToLowerまたはToUpperはここで最良のオプションですか?一方が他方よりも優れていますか?私はどこかでToUpperの方が優れていると読んだと思いましたが、それがここで当てはまるかどうかはわかりません。(私は多くのコードレビューを行っており、誰もがToLowerを使用しています。) Dim s = From row In context.Table Where String.Compare(row.Name, "test", StringComparison.InvariantCultureIgnoreCase) = 0 これは、row.Nameを「test」と単に比較し、大文字と小文字を区別するデータベースで「Test」と「TEST」を返さないSQLクエリに変換されます。
137 .net  sql  vb.net  linq  linq-to-sql 

8
LINQ to SQL:複数の列での複数の結合。これは可能ですか?
与えられた: TABLE_1次の列で名前が付けられたテーブル: ID ColumnA ColumnB ColumnC 私は、SQLクエリ持ってTABLE_1二回のオフに基づいて、それ自体に参加するがColumnA、ColumnB、ColumnC。クエリは次のようになります。 Select t1.ID, t2.ID, t3.ID From TABLE_1 t1 Left Join TABLE_1 t2 On t1.ColumnA = t2.ColumnA And t1.ColumnB = t2.ColumnB And t1.ColumnC = t2.ColumnC Left Join TABLE_1 t3 On t2.ColumnA = t3.ColumnA And t2.ColumnB = t3.ColumnB And t2.ColumnC = t3.ColumnC ... and query continues …



9
NHibernateとLINQ to SQL
実際のプロジェクトでどちらのテクノロジーも使用したことがない人として、これら2つがどのように互いに補完し合い、それらの機能がどの程度重複しているかを誰かが知っているだろうか?

5
LINQで日付が最も高いレコードのみを選択する方法
次のフィールドを持つ「lasttraces」というテーブルがあります。 Id, AccountId, Version, DownloadNo, Date データは次のようになります。 28092|15240000|1.0.7.1782|2009040004731|2009-01-20 13:10:22.000 28094|61615000|1.0.7.1782|2009040007696|2009-01-20 13:11:38.000 28095|95317000|1.0.7.1782|2009040007695|2009-01-20 13:10:18.000 28101|15240000|1.0.7.1782|2009040004740|2009-01-20 14:10:22.000 28103|61615000|1.0.7.1782|2009040007690|2009-01-20 14:11:38.000 28104|95317000|1.0.7.1782|2009040007710|2009-01-20 14:10:18.000 どうすれば LINQ to SQLで、すべてのAccountId(日付が最も大きいもの)の最後の最後のトレースのみを取得ですか?
117 c#  .net  linq  linq-to-sql 

13
データベーステーブルの列にリストを格納する方法
だから、あたりに関連する質問への答えMehrdad、私はそれを得る「適切な」データベース表の列がリストを格納していないこと。むしろ、上記のリストの要素を効果的に保持する別のテーブルを作成してから、直接または結合テーブルを介してそれにリンクする必要があります。ただし、作成するリストのタイプは、一意のアイテムで構成されます(リンクされた質問のフルーツとは異なります)例)。さらに、リスト内の項目は明示的に並べ替えられています。つまり、要素を別のテーブルに保存した場合、アクセスするたびに並べ替える必要があります。最後に、リストは基本的にアトミックです。リストにアクセスしたいときはいつでも、リストの一部ではなくリスト全体にアクセスしたいので、データベースクエリを発行して複数のリストを集めるのはばかげているようです。リスト。 AKXのソリューション(上記にリンク)は、リストをシリアル化してバイナリ列に格納することです。しかし、シリアル化と逆シリアル化について心配する必要があることを意味するため、これも不便に思われます。 より良い解決策はありますか?より良い解決策がない場合、なぜですか?この問題は時々発生するようです。 ...私がどこから来たのかを知らせるためのもう少しの情報。SQLとデータベースの一般的な理解を始めた直後に、LINQ to SQLに切り替えられました。オブジェクトがどのように動作するかを考えずにプログラミングオブジェクトモデルを扱うことを期待しているので、今は少し甘やかされています。照会またはデータベースに格納されます。 皆さんありがとう! ジョン 更新:それで、私が得ている最初の一連の答えで、「CSV / XMLルートに行くことはできますが、しないでください!」と表示されます。だから今私はその理由の説明を探しています。いくつかの良い参考文献を教えてください。 また、私が今何をしているのかをよりよく理解するために:私のデータベースには、(x、y)ペアのリストを持つFunctionテーブルがあります。(この表には、説明に影響しない他の情報も含まれます。)(x、y)ペアのリストの一部を見る必要はありません。むしろ、私はそれらすべてを取り、画面上にプロットします。ユーザーがノードをドラッグして値を変更したり、プロットに値を追加したりできるようにします。

15
LinqからSqlへのランダムな行
いくつかのフィールドがtrueでなければならないなどの条件がある場合に、Linq to SQLを使用してランダムな行を取得する最良の(そして最も速い)方法は何ですか?
112 c#  .net  linq-to-sql 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.