0

我有两个对象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
4

1 回答 1

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;
于 2012-11-17T19:26:00.843 回答