我有两个对象ListingActivity和Activity,ListingActivities用于将活动链接到Listings。
这是对象
public class ListingActivity
{
[Key]
public int ListingActivityId { get; set; }
public Activity Activity { get; set; }
public Listing Listing { get; set; }
}
public class Activity
{
[Key]
public int ActivityId { get; set; }
public string Name { get; set; }
public ListingActivity ListingActivity { get; set; }
}
我希望有一个清单,以便用户可以查看已经链接到列表的活动,然后选择未链接的活动。我知道如何做UI和一切。但是这个查询将如何使用Code First Entity Framework。
我已经用SQL实现了类似的功能,然后看起来或多或少像这样(免责声明:PSEUDO SQL)
select case when ListingActivity!=null then 'checked' else 'not checked'
from Activity
left join ListingActivity
答案 0 :(得分:0)
这就是我想要的,在这里发布,它可能会帮助将来的某个人
var actList = (from a in db.Activities
join la in db.ListingActivities on a.ActivityId equals la.Activity.ActivityId into
tempActivities
from listingActivites in tempActivities.DefaultIfEmpty()
select new ListingActivityItem()
{
ListingActivityId = listingActivites.ListingActivityId,
Activity = a,
Checked = listingActivites.Listing != null
}).OrderBy(p=>p.Activity.Name).ToList();
return actList;