ホームページ >バックエンド開発 >C++ >LINQを使用してSQLを使用して複数のテーブルを照会するときに匿名タイプの制限を克服する方法は?

LINQを使用してSQLを使用して複数のテーブルを照会するときに匿名タイプの制限を克服する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-28 00:21:09771ブラウズ

How to Overcome Anonymous Type Restrictions When Querying Multiple Tables with Linq to SQL?

linq to sql:複雑なクエリと匿名タイプの処理

linq to sqlはデータベースインタラクションの強力なツールですが、複雑な結果セット、特に匿名タイプを含むものを扱う場合、制限が存在します。 これは、複数のテーブルを照会すると明らかになります

「犬」(列の名前」、「年齢」、「breadid」)、「breed」(「breadid」、 "breedname")の2つのテーブルを検討します。 目標は、犬の情報とその品種名を取得することです。 結合と匿名のタイプの投影を使用した素朴なアプローチは次のようになるかもしれません:

<code class="language-csharp">var result = from d in db.Dogs
             join b in db.Breeds on d.BreedId equals b.BreedId
             select new { Name = d.Name, BreedName = b.BreedName };</code>
これは失敗します。LinqtoSQLにはマッピング可能なタイプが必要であり、匿名の型が必要ではありません。

ソリューション:カスタムクラス

推奨されるソリューションは、結合されたデータを表すためにカスタムクラスを定義することです。

このクラスのインスタンスに入力するようにクエリが変更されます。

<code class="language-csharp">public class DogWithBreed
{
    public Dog Dog { get; set; }
    public string BreedName { get; set; }
}</code>
このアプローチは、タイプの安全性と拡張性を提供し、複数のテーブルから取得された複雑なデータの効率的な取り扱いを可能にし、LINQの匿名タイプによって課される制限を排除します。

以上がLINQを使用してSQLを使用して複数のテーブルを照会するときに匿名タイプの制限を克服する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。