0

私にはListingActivityとActivityの2つのオブジェクトがあります。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 FirstEntityFrameworkを使用した場合のようになります。

私は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 に答える