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

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

Susan Sarandon
發布: 2025-01-28 00:26:09
原創
741 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板