Mik*_*e Q 3 c# linq var anonymous-types
当我执行返回匿名类型的查询时
var assets =
from Product p in Session.CreateLinq<Product>()
where bundles.Contains(p.ProductBundle)
select new {p.Asset, p.Asset.PropertyTbl};
Run Code Online (Sandbox Code Playgroud)
我可以输入var以外的其他内容吗?
您不能*返回匿名类型,因为调用者不知道它是什么类型并且无法使用它.
如果要返回结果,可以创建非匿名类型的对象:
IEnumerable<Foo> assets =
from Product p in Session.CreateLinq<Product>()
where bundles.Contains(p.ProductBundle)
select new Foo { Bar = p.Asset, Baz = p.Asset.PropertyTbl};
Run Code Online (Sandbox Code Playgroud)
如果您不想为值创建自定义类,也可以在.NET 4中使用Tuple类型.
*这不是严格正确的 - 这是可能的,但你应该避免这样做.无论如何,如果你真的想要,这是一个链接.