检查列表与实体框架代码优先

时间:2012-11-17 04:58:21

标签: c# sql entity-framework ef-code-first

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

1 个答案:

答案 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;
相关问题