Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq设置内部属性的最佳方法_C#_Linq To Sql_Linq To Entities_Entity Framework 5_Entity Relationship - Fatal编程技术网

C# Linq设置内部属性的最佳方法

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

我试图从数据库中提取结果并设置子属性,同时使用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 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修改子属性。。。这和我做的一样。。