EntityName と EntityIds を含む監査モデルがあります。
このテーブルから EntityRecord と関連エンティティを取得する動的クエリを作成する方法を探しています
これは私がこれまでに持っているものです
var auditRows = from a in context.Audit
where (a.EntityName == entityName && a.EntityKey == entityKey);
私が取得したかったのは、エンティティ、たとえば「クラス」に関連するエンティティ「学生」があるかどうかです。where句を次のように作成する動的クエリを作成したい
where (a.EntityName == entityName && a.EntityKey == entityKey) ||
(a.EntityName == "Students" && context.Students.Where(s => s.ClassID == entityKey)
関連エンティティを取得する方法を見つけました
var objectContext = ((IObjectContextAdapter)context).ObjectContext;
var container = objectContext.MetadataWorkspace.GetEntityContainer(objectContext.DefaultContainerName, DataSpace.CSpace);
var relatedEntitySets = container.EntitySets.Where(es => es.ElementType.Name == entitySet).First().ElementType.NavigationProperties
しかし、クエリを作成する方法や、クエリを作成するためのより良い方法があるかどうかはわかりません。