gpt4 book ai didi

c# - 是否有使用 Linq 直接动态查询数据库的库?

转载 作者:行者123 更新时间:2023-11-30 16:33:19 24 4
gpt4 key购买 nike

我有一个非常动态的 SQL Server 问题需要解决。我正在开发一种工具来验证多个数据库中的匹配数据。 [注意:这个项目的要求非常严格]

我需要制作一个 C# 工具,让用户从动态列表中选择任何数据库,然后让用户选择一个表(作为源数据库/表)。完成后,用户再次为另一个数据库和表(或多个表作为目标)执行此操作

一旦选择了源和目标,用户就可以选择哪些字段映射到哪些其他字段。

最后,程序需要遍历源表中的记录并在目标表中找到任何匹配的键。它需要检查诸如只有一个键匹配、所有其他映射字段具有相同数据等...

我想在我的代码中使用 Linq,并只为我运行此基本逻辑的字段/表传递字符串。问题是数据库和模式在编译时是未知的。

我正在寻找有关此事的方向。我似乎找不到解决办法。我最接近的是那里的动态 Linq-to-sql 库。但这仅在您的数据模型范围内是动态的。我什至没有数据模型。

我正在考虑将整个 Linq 东西放在一起,只是编写我自己的快速而肮脏的方法链接来生成我需要的基本 SQL(基本上是一个奇特的字符串生成器)。

最佳答案

我认为 Linq-to-SQL 不太适合这项任务。 L2S 擅长从数据库中获取您的业务对象,并再次更新它们 - 一次一个(或几个)。

我不认为在这种情况下使用 Linq-to-SQL 会给您带来很大好处,因为您实际上是在处理有关数据库和表的元数据。在这种情况下,您可以直接使用 SQL 和 ADO.NET(最好是 SqlDataReader)来查询系统目录 View (如 sys.tablessys.columns 等等),或者您可以考虑使用 SQL Server 管理对象 (SMO) 库来访问 SQL Server 的内部结构。

无论哪种方式,您最终可能会得到您自己从点点滴滴组装起来的对象列表 - 当然,您可以在这些内存中的列表和集合上使用 Linq-to-Objects,不问题。

一些要查看的资源:

关于c# - 是否有使用 Linq 直接动态查询数据库的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3340384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com