I持っている複合キーを持つ2つの関連企業:どのようにLINQクエリ2に参加する
public class Event
{
public string ID1 { get; set; }
public int ID2 { get; set; }
public DateTime EventDate { get; set; }
public string EventData { get; set; }
public string DocID1 { get; set; }
public int DocID2 { get; set; }
}
public class EventDocument
{
public string ID1 { get; set; }
public int ID2 { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Number { get; set; }
public virtual ICollection<Event> Events { get; set; }
}
いくつかの基準によって、最初にそれらの両方をフィルタリングする可能性があるし、次にため、レコードの大量の結果を結合するために?
事実上、私はEventDocumentsをフィルタリングするときに関連するイベントに到達できますが、EventとDocumentDocumentを一度にフィルタリングする必要もあります。
私はこのようにやろうとしています:
var events = ModelContext.Events.AsNoTracking().Select(x => x);
events = events.Where(x => x.EventData.StartsWith(FilterCriteria));
var eventDocuments = ModelContext.EventDocuments.AsNoTracking().Select(x => x);
eventsDocuments = eventDocuments.Where(x => x.LastName.StartsWith(FilterLastName));
そして今、私は、クエリにこれらを結合し、結果を取得する必要があります - 濾過し、次のようにやろうとしている2つのエンティティ
からデータを参加しました:
var result = eventDocuments.Join(events,
doc => new { doc.ID1, doc.ID2 },
ev => new { cross.DocID1, cross.DocID2},
(doc, ev) => new { EventDocument = doc, Event = ev });
はいイベントをeventDocumentsに結合します。何が問題ですか? –
がエラーを持ってドン; tはそれをunderstant:重大度\tコード\t説明\t エラー\t CS0411 Enumerable.Join」メソッドの\t型引数(IEnumerableを、IEnumerableを、のFunc 、Func 、Func )は使用法から推論できません。型引数を明示的に指定してみてください。 –
Songaila
*なぜあなたは入会を頼んでいますか? eventDocumentを読み込むと、EFはそれらを 'Include()'に渡しても、イベントをロードします –