LINQ加入VB.NET返回具体类型而不是匿名

时间:2012-04-25 09:11:44

标签: asp.net-mvc linq entity-framework

我在VB.NET中有以下LINQ查询

Using db As New ReablementLSQLDataContext
                query = (From b In db.Visits
                             Join c In db.LinkStaffToVisits On b.ID Equals c.VisitID
                             Where c.StaffID = staffid And b.StartEpoch = newepochdatetime).ToList()

            End Using

当我运行它时,它返回一个匿名类型列表,这意味着如果我想访问其中的任何数据,它就没用了。如何运行此join语句并返回具体类型的列表?

2 个答案:

答案 0 :(得分:3)

作为查询结果的匿名类型不是那么“无用”,因为你总是foreach对它们(本地)。但是,如果你想要一个具体的类型,你可以在最后添加一个select语句并将匿名结果投射到你的类型中(假设你做了这个类型并知道在哪里使用哪些字段),比如(C#语法)

var newQuery = query.Select(anon_x => new YourType(anon_x.field1, anon_x.field2, ...))

答案 1 :(得分:1)

您可以使用ToList方法的通用版本。我是C#开发人员,可以提供与C#相关的语法:

.ToList<YourType>();

对于VB.Net版本,请阅读:http://msdn.microsoft.com/en-us/library/bb342261.aspx#Y0