ホームページ > バックエンド開発 > C++ > LINQからSQLクエリは、結果として匿名タイプを返すことができますか?

LINQからSQLクエリは、結果として匿名タイプを返すことができますか?

Susan Sarandon
リリース: 2025-01-28 00:26:09
オリジナル
794 人が閲覧しました

Can LINQ to SQL Queries Return Anonymous Types as Results?

LINQ to SQL は結果として匿名型を返すことができますか?

LINQ to SQL で、複数のテーブルをクエリし、その結果を匿名型と組み合わせるにはどうすればよいですか?

匿名型を使用した最初の試行

次の例では、2 つのテーブル DogsBreeds を使用し、匿名型を使用してすべての犬とそれに対応する BreedName を取得しようとします。

public IQueryable<dog> GetDogsWithBreedNames()
{
    var db = new DogDataContext(ConnectString);
    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
                        };
    return result;
}</dog>
ログイン後にコピー
ただし、コンパイラは匿名型ではなく

が返されることを期待しているため、これは失敗します。 Dogs

カスタムタイプ

1 つの解決策は、犬種名を持つ犬を表すカスタム タイプを作成することです:

public class DogWithBreed
{
    public Dog Dog { get; set; }
    public string BreedName  { get; set; }
}
ログイン後にコピー

カスタムタイプを使用する

このカスタム タイプを使用すると、クエリを変更して目的の結果を返すことができます:

public IQueryable<dogwithbreed> GetDogsWithBreedNames()
{
    var db = new DogDataContext(ConnectString);
    var result = from d in db.Dogs
                 join b in db.Breeds on d.BreedId equals b.BreedId
                 select new DogWithBreed()
                        {
                            Dog = d,
                            BreedName = b.BreedName
                        };
    return result;
}</dogwithbreed>
ログイン後にコピー
このアプローチは、カスタム タイプを使用して複数のテーブルからの結果を結合するタイプセーフで再利用可能な方法を提供します。 これにより、匿名型を使用するときに発生する型の不一致の問題が回避されます。

以上がLINQからSQLクエリは、結果として匿名タイプを返すことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート