繁体   English   中英

linq to sql的不同值或分组依据

[英]linq to sql distinct values or group by

我有以下linq查询。
如何修改查询以仅返回CityFoo属性的不同值?

var query = from f in db.Foos
             join b in db.Bars on f.IDFoo equals b.IDFoo
             join fb in db.Fubars on b.IDBar equals fb.IDBar
             select new MyViewModel {
                    IDFoo = f.IDFoo,
                    NameFoo = f.NameFoo,
                    CityFoo = f.CityFoo,
                    NameBar = b.NameBar,
                    NameFubar = fb.NameFubar };

我认为您缺少查询信息。 如果要在其他属性上使用第一个值,则需要告知Linq

所以我猜您实际上是想分组然后再拿第一。

或者...这样的事情:

var query = from f in db.Foos
             join b in db.Bars on f.IDFoo equals b.IDFoo
             join fb in db.Fubars on b.IDBar equals fb.IDBar
             group  new { f, b, fb } by f.CityFoo into grp
             let first = grp.FirstOrDefault()
             select new MyViewModel {
                    IDFoo = first.f.IDFoo,
                    NameFoo = first.f.NameFoo,
                    CityFoo = grp.Key,
                    NameBar = first.b.NameBar,
                    NameFubar = first.fb.NameFubar };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM