我正在使用LINQ with Entity框架来连接三个表,我正在返回IList接口.
我想foreach在这个返回值上应用循环,这样我就可以在我的模型中填充值.
这就是我加入的方式:
public IList GetData(long Id)
{
//var q = dataContext.tblUsers.AsEnumerable().Join(dataContext.tblUsersProfiles.AsEnumerable(),)
var query = from u in dataContext.tblUsers
join p in dataContext.tblUsersProfiles on u.ProfileId equals p.Id
join c in dataContext.tblComments on u.Id equals c.Commentedby
where c.Id == Id
select new { u.Firstname, u.Lastname, p.ProfilePicPath, c.Comment, c.CommentDate };
return query.ToList();
}
Run Code Online (Sandbox Code Playgroud)
我想在我的模型列表中填充这些值.我试过这个:
var lst = repository.GetDate(Id);
foreach (var item in lst)
{
}
Run Code Online (Sandbox Code Playgroud)
但我无法访问项目Firstname/ Lastname等
我也试过使用对象item,object[] item但他们都没有工作.
我如何申请for每个onIList?
它会正常工作如果我能够返回DataTable而不是IList在这种情况下.
您正在创建匿名类型.只需为查询结果定义一个类,然后函数的返回类型应如下所示:
public IList<YourClassName> GetData(long Id)
{
}
Run Code Online (Sandbox Code Playgroud)
最后设置类值:
select new YourClassName
{
Firstname = u.Firstname,
Lastname = u.Lastname,
ProfilePicPath = p.ProfilePicPath,
Comment = c.Comment,
CommentDate = c.CommentDate
};
Run Code Online (Sandbox Code Playgroud)