Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
LINQ/Projection-如何按每个TableB的非FK列id/名称字段对TableA排序?_Linq_Asp.net Mvc 3_Linq To Sql - Fatal编程技术网

LINQ/Projection-如何按每个TableB的非FK列id/名称字段对TableA排序?

LINQ/Projection-如何按每个TableB的非FK列id/名称字段对TableA排序?,linq,asp.net-mvc-3,linq-to-sql,Linq,Asp.net Mvc 3,Linq To Sql,如何使用LINQ/Projection对包含引用表/对象B(B包含id和名称)的id字段的对象列表进行排序 我想按B.name对包含B的对象列表进行排序 模型(伪) 基本上,寻找与此等价的(使用上面的投影连接或OrderBy): var q1= 从数据库中的 将b加入db.b中,a的出价等于b的出价 orderby b.Name/您正在寻找与上面已经编写的LINQ查询等价的查询,只是它基于扩展方法,我说的对吗 在这种情况下,应采取以下措施: var list = db.As.Where(a =&

如何使用LINQ/Projection对包含引用表/对象B(B包含id和名称)的id字段的对象列表进行排序

我想按B.name对包含B的对象列表进行排序

模型(伪)

基本上,寻找与此等价的(使用上面的投影连接或OrderBy):

var q1=
从数据库中的
将b加入db.b中,a的出价等于b的出价

orderby b.Name/您正在寻找与上面已经编写的LINQ查询等价的查询,只是它基于扩展方法,我说的对吗

在这种情况下,应采取以下措施:

var list = db.As.Where(a => a.BId.HasValue)
                .Join(db.Bs, a => a.BId.Value, b => b.BId, (a, b) => new { a, b.Name })
                .OrderBy(r => r.Name)
                .Select(r => r.a);
我还添加了一个检查,以确保a.BId在获取其值之前不为null


只是好奇:为什么不能使用LINQ查询(唯一的区别是选择a而不是c)?

太棒了!主要是为了兴趣,看看是否有表现上的差异。很酷,再次感谢!顺便说一句,“c”是一个打字错误,应该是一个“a”。
var list = db.As.OrderBy(x => x.BId->References.Name);  // Way wrong but using something similar
return(list.ToList()
        var q1 =
             from a in db.As
             join b in db.Bs on a.BId equals b.BId
             orderby b.Name   // <- Need this to sort by B's name
             select c;
var list = db.As.Where(a => a.BId.HasValue)
                .Join(db.Bs, a => a.BId.Value, b => b.BId, (a, b) => new { a, b.Name })
                .OrderBy(r => r.Name)
                .Select(r => r.a);