LINQ具有现有数据库和未知模式

时间:2010-10-20 14:03:54

标签: database linq

我正在开发一个数据库繁重的项目,其中Microsoft SQL数据库非常成熟(16年或更久的成熟),旧产品使用VB6和ADO生成与数据库交互的sql。我已经被赋予了使用新的.NET版本移植/重写旧版本的任务。

我喜欢使用LINQ-to-*来确保易于维护,但是在过去的几周里,我觉得LINQ-to-SQL不够灵活,LINQ-to-Entities有太多的开销和LINQ-to-Datasets毫无意义,因为使用Ado.Net我会很高兴。

该程序同时在两个数据库上运行:一个是具有包含元数据的非常一致的模式的数据库,另一个是具有不同模式的数据库,与元数据库紧密耦合,并指示哪些信息来自您在任何给定时间感兴趣的元数据库。此外,我需要来自两个数据库的非LINQ信息(例如系统存储过程和系统表)。

有没有办法在这里智能地使用LINQ?我喜欢静态打字,但如果我不能拥有它,我不想强​​迫我的方形应用程序进入圆形框架。

2 个答案:

答案 0 :(得分:1)

只是一个FYI,您可以使用LINQ获取访问系统表(以及sys存储过程?)。方法如下:

  • 创建与所需服务器的连接。
  • 右键单击服务器,然后选择“更改视图”>对象类型。
  • 您现在应该看到系统表和用户表。你应该在那里看到sysjobs,你可以轻松地将它拖到.dbml表面上。

上面是this post.

被盗

答案 1 :(得分:0)

最好的答案似乎是完全使用ADO.NET。我可以选择在元数据库和ADO.NET上使用Linq-to-Sql进行任何其他数据库访问,但这会使代码对我来说感觉太不一致。