1

拡張メソッドで linq を使用して単純な左結合を行う方法がわかりません。

結果をページングしているため、理解クエリではなく拡張メソッドを使用する必要があります。

var carParkPagedList =
db.CarPark
.Join(db.UserProfiles, cp => cp.UserProfileId, up => up.UserId, (cp, up))
.OrderBy(f => f.Name)
.Where(f => f.FloorId == floorId)
.Select(f => new CarParkListDisplayModel
{
    CarParkId = f.CarParkId,
    Name = f.Name
}).ToPagedList(page, 10);

これに関するヘルプはどこにもありません。101 の linq の例を試しましたが、これは内包クエリの検索ですが、拡張メソッドのサポートは提供しません。

4

1 に答える 1

1

わかりましたサイモンに感謝します。そのアプローチはうまくいきました。これからはそれを使用します。より論理的です。

var carParkPagedList =
(from cp in db.CarPark
where cp.FloorId == floorId
join occupant in db.UserProfiles on cp.UserProfileId equals occupant.UserId into gj
from occupant in gj.DefaultIfEmpty()
orderby cp.Name
select new CarParkListDisplayModel
{
    CarParkId = cp.CarParkId,
    Name = cp.Name,
    UsersName = (occupant == null ? "Un-ocupied" : occupant.FirstName + " " + occupant.LastName)
}).ToPagedList(page, 10);
于 2013-08-20T03:06:41.787 に答える