首页 / 问答 / C#/.NET/.NET Core应用程序编程开发中方法如何返回LINQ查询的匿名类型结果?

C#/.NET/.NET Core应用程序编程开发中方法如何返回LINQ查询的匿名类型结果?

.NET C# Linq .NET Core 3K 次浏览
0

在C#/.NET/.NET Core应用程序编程开发中,在使用LINQ进行两个表的关联查询后,需要将两张表中的某些字段数据作为匿名类型的返回结果,应该如何 实现呢?比如分别有两个实体类DogBreed,示例代码如下:

public class Dog
{
    public string Name { get; set; }
    public int Age { get; set; }
    public int BreedId { get; set; }
}

public class Breed
{
    public int BreedId { get; set; }
    public string BreedName { get; set; }
}

现在需要使用Dog关联Breed进行查询,然后返回Dog表中的所有数据并且要包含Breed表中的BreedName,类似的LINQ查询如下:

public IQueryable<Dog> GetDogsWithBreedNames()
{
    var result = from d in Dogs
                 join b in Breeds on d.BreedId equals b.BreedId
                 select new
                        {
                            Name = d.Name,
                            BreedName = b.BreedName
                        };
    return result;
}

这里的怎么返回包含多个表字段的返回类型呢?

回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    创建一个专门用于返回类型的实体类DogWithBreed,定义如下:

    然后查询方法的返回值使用DogWithBreed,如下:

    完整的示例代码如下:

    输出结果:

    Rector的个人主页

    Rector

    2020-04-22 回答

    • 0

      如果你不想创建一个额外的实体类来作为返回类型,还可以使用Tuple来实现(但不建议),如下:

      完整示例代码如下:

      Rector的个人主页

      Rector

      2020-04-22 回答

      • 0

        在C# 7.0 及以上版本,你还可以使用Tuples作为返回类型,如下:

        完整的示例代码如下:

        Rector的个人主页

        Rector

        2020-04-22 回答

        我来回答