首頁 >後端開發 >C++ >LINQ to SQL 查詢可以傳回匿名類型作為結果嗎?

LINQ to SQL 查詢可以傳回匿名類型作為結果嗎?

Susan Sarandon
Susan Sarandon原創
2025-01-28 00:26:09742瀏覽

Can LINQ to SQL Queries Return Anonymous Types as Results?

LINQ to SQL能否返回匿名類型作為結果?

在LINQ to SQL中,如何查詢多個表並將結果與匿名類型結合?

使用匿名類型的初始嘗試

以下示例使用兩個表DogsBreeds,嘗試使用匿名類型檢索所有狗及其對應的BreedName

<code class="language-csharp">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></code>

但是,這會失敗,因為編譯器期望返回Dogs,而不是匿名類型。

自定義類型

一種解決方案是創建一個自定義類型來表示帶有品種名稱的狗:

<code class="language-csharp">public class DogWithBreed
{
    public Dog Dog { get; set; }
    public string BreedName  { get; set; }
}</code>

使用自定義類型

使用此自定義類型,可以修改查詢以返回所需結果:

<code class="language-csharp">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></code>

這種方法提供了一種類型安全且可重用的方法,可以使用自定義類型組合來自多個表的結果。 這避免了使用匿名類型時遇到的類型不匹配問題。

以上是LINQ to SQL 查詢可以傳回匿名類型作為結果嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn