动态地将多个表映射到单个实体

时间:2011-11-05 06:33:29

标签: entity-framework orm mapping

我有一些表应该每年添加到我的数据库中,数据库名称包含年份(如sell2005),并且我们在这些表上写了一些ef个查询,查询只能在一个表上查询实体(如sell2005)但是当sell2006或sell2007添加时我该怎么办?我怎么能用之前写过的那个单一查询来管理它们? 谢谢。

1 个答案:

答案 0 :(得分:1)

没有简单的方法。 EF根本不是这种情况的工具。对于EF,您必须具有“单个表”,因此您必须使用按年划分的一个真实数据库表进行分区,或者必须在这些表之上构建视图。

问题是在EF中你有类和表之间的严格关系。您不能将单个类映射到多个表,即使它们完全相同(不适合您的继承除外)。因此,解决方法需要具有多个SSDL / MSL映射 - 每个表一个,并构造正确的上下文实例,并为每个查询提供正确的映射。据我所知,映射的动态更改是不可能的(除了在使用之前修改SSDL / MSL文件)。