我有一个基于我的实体框架中的表动态生成的Web服务器控件。现在决定使用具有不同数据集的相同结构的表,我需要一些方法来动态地将我的控件重新指向另一个表。 (我已经考虑过保留一张桌子而只是添加一个标志,所以不要让我们离开那里)
我可以使用linq-to-entities,通过将新表添加到我的实体模型,并且只是有条件地查询模型中的一个或另一个表来实现。问题是查询返回的结果将是两个不同实体类的集合。这会对处理这些集合的所有代码造成问题,因为它必须进行修改并可能重复以使其工作。
因此,如果我可以以某种方式映射linq查询的结果,这样无论我查询哪个表,结果都是相同的类类型,那么它将最小化对其余代码的影响。我将如何实现类似下面的内容,其中两个不同的表可以实现为相同类类型的列表?
请注意,我使用的是.NET 3.5
var formFooQuery;
if(mode1 == true)
{
formFooQuery = from r in EntitiesContext.Foo1Set.Include("Foo1Data")
where r.FooId == fooId
select r;
}
else
{
formFooQuery = from r in EntitiesContext.Foo2Set.Include("Foo2Data")
where r.FooId == fooId
select r;
}
List<Foo> foos = formFooQuery.ToList<Foo>();
答案 0 :(得分:1)
您可以使用POCO Support。
在Entity Framework中执行此操作答案 1 :(得分:1)
if(mode1 == true)
{
formFooQuery = from r in EntitiesContext.Foo1Set.Include("Foo1Data")
where r.FooId == fooId
select new FooViewModel { FooId = r.FooId, FooName = r.FooName };
}
else
{
formFooQuery = from r in EntitiesContext.Foo2Set.Include("Foo2Data")
where r.FooId == fooId
select new FooViewModel { FooId = r.FooId, FooName = r.FooName };
}
List<FooViewModel> foos = formFooQuery.ToList<FooViewModel>();