C# Linq设置内部属性的最佳方法
我试图从数据库中提取结果并设置子属性,同时使用Linq(EFV5.0)进行选择。我这样做的原因是因为数据库中没有可用于include的关系C# Linq设置内部属性的最佳方法,c#,linq-to-sql,linq-to-entities,entity-framework-5,entity-relationship,C#,Linq To Sql,Linq To Entities,Entity Framework 5,Entity Relationship,我试图从数据库中提取结果并设置子属性,同时使用Linq(EFV5.0)进行选择。我这样做的原因是因为数据库中没有可用于include的关系 var lamdaResult = from u in model.Entity_Users join s in model.Entity_Staff on u.UserID equals s.ST_UserID select new { u, s }; return lam
var lamdaResult = from u in model.Entity_Users
join s in model.Entity_Staff on u.UserID equals s.ST_UserID
select new { u, s };
return lamdaResult.Select(x => x.u.Staff = x.s; return x.u;).FirstOrDefault();
我正在学习林肯。。上面的表达式给了我错误。。有人能帮我设置子属性的最佳方法吗
我也可以这样做。。但我想知道有没有更好的方法来实现相同的结果,而不是下面两个表达式
var user=null;
var lamdaResult = from u in model.Entity_Users
join s in model.Entity_Staff on u.UserID equals s.ST_UserID
select new { u, s };
user = lamdaResult.Select(x => x.u).FirstOrDefault();
user.Staff = lamdaResult.Select(x => x.s).FirstOrDefault();
Linq是用于查询的,而不是用于改变对象。您需要使用LINQ以外的其他方法进行突变,通常情况下,foreach
是合适的,尽管您只有一个项目,甚至不需要:
var item = (from u in model.Entity_Users
join s in model.Entity_Staff on u.UserID equals s.ST_UserID
select new { User = u, Staff = s })
.FirstOrDefault();
item.User.Staff = item.Staff;
return item.User;
Linq是用于查询的,而不是用于改变对象。您需要使用LINQ以外的其他方法进行突变,通常情况下,foreach
是合适的,尽管您只有一个项目,甚至不需要:
var item = (from u in model.Entity_Users
join s in model.Entity_Staff on u.UserID equals s.ST_UserID
select new { User = u, Staff = s })
.FirstOrDefault();
item.User.Staff = item.Staff;
return item.User;
您收到的错误是什么?对于第一段代码,我得到的是“无效表达式项”)“您收到的错误是什么?对于第一段代码,我得到的是“无效表达式项”)”“很高兴知道我们不能用linq更改子属性。。。这和我做的一样…很高兴知道我们不能用linq修改子属性。。。这和我做的一样。。