我有以下场景:有一个数据库每年生成一个新的logTable.它始于2001年,目前有11张桌子.它们都具有相同的结构,因此具有相同的字段,索引,pk等.
我有一些叫做管理器的类 – 顾名思义 – 管理这个DB上的每个操作.对于每个不同的表我有一个经理,除了这个logTable,我只有一个经理.
我已经阅读了很多内容并尝试了不同的东西,例如使用ITable动态获取表或者我的所有表都实现的接口.不幸的是,我失去了强类型的属性,因此我无法进行任何搜索或更新或任何事情,因为我无法使用logTable.Where(q => q.ID == paramId).
考虑到这些表具有相同的结构,从2010开始搜索日志的查询可以是从2011年开始搜索日志的查询.
我只是问这个,因为我不想为每个表重写相同的代码,因为它们在结构上是相同的.
编辑
解决方法
只要每个查询返回相同的形状,就可以使用ExecuteQuery< Log>(“从LogTable中选择cols”实例).请注意,ExecuteQuery是LINQ to sql允许sql注入的一种情况.我将讨论如何在
http://www.thinqlinq.com/Post.aspx/Title/Does-LINQ-to-SQL-eliminate-the-possibility-of-SQL-Injection参数化ExecuteQuery.