我有一个非常动态的SQL Server问题来解决。我正在开发一个工具来验证多个数据库中的匹配数据。 [注意:这个项目的要求是相当严格的]是否有一个库可以动态使用Linq直接查询数据库?
我需要一个C#工具,让用户从动态列表中选择任何数据库,然后让用户选择一个表(作为源数据库/表)。一旦完成,用户再次为另一个数据库和表格(或多个表格作为目的地)执行此操作。
一旦选择了源和目标,用户可以选择哪些字段映射到哪些其他字段。
最后,程序需要遍历源表中的记录,并找到目标表的任何匹配的密钥。它需要检查的东西,只有一个关键匹配,所有其他映射字段具有相同的数据等...
我想在我的代码中使用Linq,只是传递字段/表的字符串我正在运行这个基本逻辑。问题是数据库&模式在编译时是未知的。
我正在寻找这个问题的方向。我似乎无法找到解决方案。我最近来到的是动态的Linq-to-sql库。但这只是在你的数据模型范围内动态的。我甚至无法拥有数据模型。
我想丢弃整个LINQ的东西放在一起的只是写我自己的快速和肮脏的方法链接生成我需要的基本的SQL(基本上是花哨的字符串生成器)的。
可能最好地利用ADO.Net“的getSchema “方法(http://msdn.microsoft.com/en-us/library/kcax58fh.aspx)或INFORMATION_SCHEMA视图(http://msdn.microsoft.com/en-us/library/ms186778.aspx)而不是“系统”。表。其他两种方法均得到支持和记录。 – 2010-07-27 04:58:39
@Aydsman:“系统”。目录视图也完全记录在这里(这里是:http://msdn.microsoft.com/en-us/library/ms189082.aspx),并且通常比一般用途的ANSI-Standard INFORMATION_SCHEMA视图更有用(但特定于SQL Server) 。 – 2010-07-27 05:01:10