あるリストから、別のリストには存在しないアイテムを特定する必要があります。2 つのリストは異なるエンティティ (ToDo
およびWorkshopItem
) です。Name
が todo リスト アイテムのいずれかに一致する場合、ワークショップ アイテムは todo リストにあると見なします。
以下は私が求めていることですが、再訪するたびに厄介で理解しにくいと感じます。NHibernateQueryOver
構文を使用して 2 つのリストを取得し、次に LINQ ステートメントを使用して、要件を満たすワークショップ アイテムのみに絞り込みます (DateDue
次の 2 週間で、Name
ToDo アイテムのリストに存在しません。
var allTodos = Session.QueryOver<ToDo>().List();
var twoWeeksTime = DateTime.Now.AddDays(14);
var workshopItemsDueSoon = Session.QueryOver<WorkshopItem>()
.Where(w => w.DateDue <= twoWeeksTime).List();
var matches = from wsi in workshopItemsDueSoon
where !(from todo in allTodos
select todo.TaskName)
.Contains(wsi.Name)
select wsi;
WorkshopItem
理想的には、要件に一致する のリストを返す NHibernate クエリを 1 つだけ使用したいと考えています。