2014-10-31 65 views
0

什麼是以下MySQL查詢的LINQ lambda表達式LINQ拉姆達複合鍵的位置和組由

Select Count(*), Users.BusinessName From Offers 
inner join Users on Users.UserId = Offers.UserId 
inner join RoleUsers on RoleUsers.User_UserId = Users.UserId 
inner join Roles on Roles.RoleId = RoleUsers.Role_RoleId 
where Roles.RoleName = 'Seller' 
group by Users.BusinessName 

計數優惠和組它通過用戶名的號碼(用戶爲賣方)。

public static List<CountsByUser> NoOffersByUserType() 
    { 
     List<Offer> offers; 
     using (MainDb ctx = new MainDb()) 
     { 
      var role = ctx.Roles.FirstOrDefault(r => r.RoleName == "Seller"); 
      List<User> users = role.Users.ToList(); 
      offers= ctx.OfertaPret.Any(u => u.User == users).ToList(); 
      //here is the problem u.User ==users 
      } 
      List<CountsByUser> requests = offers.GroupBy(o => o.User.BusinessName) 
             .Select(nl => new CountsByUser 
             { 
              name = nl.Key, 
              number = nl.Count() 
             }) 
                .ToList(); 
      return requests; 
     } 
+1

你嘗試過什麼到目前爲止? – DavidG 2014-10-31 17:33:01

+0

編輯該問題,請勿將其添加到評論中 – DavidG 2014-10-31 17:34:17

回答

0
offers= ctx.OfertaPret.Include(u=>u.User) 
        .Where(u => u.User.Roles.Any(r => r.RoleName == "Seller")).ToList();