我正在使用Linq使用Entity Framework查询MySQL数据库,如下所示 -
var query = from c in subQuery
select new
{
Client = c.Client,
GlobalList = c.GlobalList,
Book = (from book in context.Books
where book.c_clt_id == c.Client.c_clt_id
select book)
};
var totalSearch = query.ToList();
现在我想将totalSearch作为参数传递给另一个方法。请帮帮我怎么做?
答案 0 :(得分:3)
你可以做的唯一类型方法是,如果另一种方法是通用的,你让泛型类型推断可以做到这一点:
void SomeOtherMethod<T>(List<T> list) {...}
...
SomeOtherMethod(totalSearch);
当然,您也可以通过IList
,IEnumerable
,object
或dynamic
传递,而无需任何类型信息。
答案 1 :(得分:2)
你可能不应该这样做。如果没有类型信息,您的方法将无法(轻松)访问对象的属性。
改为使用具体的用户定义类型。如果您的对象非常短暂并且您不想创建新类型,则可以使用Tuple(需要.NET 4或更高版本)。
答案 2 :(得分:1)
您还可以使用C#动态关键字。当然,它反射慢,类型不安全。例如:
void SomeMethod(dynamic d)
{
Console.WriteLine(d.Client);
Console.WriteLine(d.GlobalList.Count);
}