linq to sql distinct values或group by

时间:2014-03-19 16:33:15

标签: c# sql linq asp.net-mvc-4 linq-to-sql

我有以下的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 };

1 个答案:

答案 0 :(得分:0)

我认为您缺少有关查询的信息。 如果您希望在其他属性上使用第一个值,则需要告知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 };