C# 如何对从多个EF模型派生的复合实体正确运行筛选/搜索/排序操作?

C# 如何对从多个EF模型派生的复合实体正确运行筛选/搜索/排序操作?,c#,asp.net-mvc,entity-framework,asp.net-mvc-4,search,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,Search,我有一个ASP.NETMVC项目,其中数据以标准的“表格”格式显示,能够应用过滤器或在某些列中搜索,并对最终结果进行排序。表中的每个条目当前都是 表示为视图模型。例如: EntryViewModel string Name int ArmCount DateTime DateOfBirth bool IsMammal Animal string Name virtual Collection<Member> Members <-- Navigation Property

我有一个ASP.NETMVC项目,其中数据以标准的“表格”格式显示,能够应用过滤器或在某些列中搜索,并对最终结果进行排序。表中的每个条目当前都是 表示为视图模型。例如:

EntryViewModel

string Name
int ArmCount
DateTime DateOfBirth 
bool IsMammal
Animal

string Name
virtual Collection<Member> Members <-- Navigation Property
int Age
bool IsVertebrate 
bool IsColdBlooded
每个条目都可以追溯到两个EF模型中的一个。每个模型都有自己的映射到
EntryViewModel
的方式。例如:

EntryViewModel

string Name
int ArmCount
DateTime DateOfBirth 
bool IsMammal
Animal

string Name
virtual Collection<Member> Members <-- Navigation Property
int Age
bool IsVertebrate 
bool IsColdBlooded
动物
字符串名

虚拟集合成员您为什么在虚拟机而不是原始模型上进行搜索?因为它们代表数据的最终概念表示。用户将看到一个“名称”列,因此将使用此表示进行搜索。原始模型甚至可能没有“名称”的概念。
EntryViewModel <--> Human

Name =        FirstName + LastName
ArmCount =    Body.Arms.Count()
DateOfBirth = DateTime.Now - Body.Age 
IsMammal =    true