从LINQ联接返回多个Model对象

时间:2010-10-26 09:50:58

标签: asp.net entity-framework asp.net-mvc-2 ado.net-entity-data-model

我正在使用ASP.NET MVC框架并使用实体访问数据库记录。 我正在做这样的连接:

public IQueryable<...> GetThem()
{
    var ords = from o in db.Orders 
              join c in db.Categories on o.CategoryID equals c.ID 
              select new {Order=o, Category=c};

    return ords;
}

我需要以强类型的方式使用/从一个函数传递'ords'到另一个函数。 (我将在多个地方进行这种连接。)

最好的方法是什么? 我是否需要为每个连接创建一个包含两个返回值的新类? 例如:公共类OrderAndCategory {public Order;公共类别;在这种情况下。

有没有更简单的方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

表示ords中数据的类是强类型的,它由编译器生成。如果编译器为查询的不同实例生成不同的类,但具有相同的类型,则可能会遇到问题。你必须检查一下。如果是这种情况,则必须为每个不同的查询创建类,或者使用类Tuple<Targs...>代替。