C# 首先是实体框架代码的检查列表
我有两个对象ListingActivity和Activity,ListingActivities用于将活动链接到列表 这是物品C# 首先是实体框架代码的检查列表,c#,sql,entity-framework,ef-code-first,C#,Sql,Entity Framework,Ef Code First,我有两个对象ListingActivity和Activity,ListingActivities用于将活动链接到列表 这是物品 public class ListingActivity { [Key] public int ListingActivityId { get; set; } public Activity Activity { get; set; } public Listing Listing { get; set; } } public clas
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; }
}
我想要一个清单,这样用户可以看到哪些活动已经链接到列表,然后选择那些没有链接的活动。我知道如何做用户界面和一切。但是,使用代码优先实体框架时,该查询会是什么样子呢
我已经用SQL实现了类似的功能,然后它看起来或多或少像这样(免责声明:伪SQL)
这就是我想要的,贴在这里,它可能会在将来帮助别人
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;
Activity ListingActivity
1:n吗?
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;