C# 如何对从多个EF模型派生的复合实体正确运行筛选/搜索/排序操作?
我有一个ASP.NETMVC项目,其中数据以标准的“表格”格式显示,能够应用过滤器或在某些列中搜索,并对最终结果进行排序。表中的每个条目当前都是 表示为视图模型。例如: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
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