【问题标题】:executing insert\update\deletes - Use Linq?执行插入\更新\删除 - 使用 Linq?
【发布时间】:2011-01-04 15:16:43
【问题描述】:

我正在考虑在我的应用程序中使用 linq to sql(或 EF)而不是 inline\dynamic sql,但遇到了一个可能的问题。我的应用程序针对多个 sql 实例中的任意数量的随机数据库修改数据,linq 似乎针对单个数据库场景进行结构化。最好继续使用 inline sql 还是有一种方法可以使用 linq 而不将其绑定到单个数据库?

我现在正在做的一个例子:

Using cn As SqlConnection = (ConnectionString)
        Using cm As SqlCommand = New SqlCommand("< Dynamic sql>;", cn)
            cn.Open()
            cn.ChangeDatabase(Database)
            cm.ExecuteNonQuery()
        End Using
 End Using

查询示例如下:

DELETE FROM settings WHERE [Sec] = 'ON' AND [Key] = 'last'; INSERT Settings([Sec], [Key], [Val]) values('ON', 'last', GETDATE());

虽然我在这些数据库中执行存储过程,但有些是自定义的,有些是用于添加用户 (sp_adduser)

所有目标数据库都具有相同的结构,因此任何查询\linq 都会对其起作用。

【问题讨论】:

    标签: sql-server vb.net linq-to-sql


    【解决方案1】:

    使用 LINQ,您是正确的,因为 DataContext 转到一个数据库,但您可以有许多 DataContext,每个 DataContext 都转到不同的数据库。例如,您可以让 SettingsDataContext 与您的设置一起进入数据库,而 UsersDataContext 与您的用户一起进入数据库,或者您已经设置了它。

    这一切都有语法。这是一些使用 ADO.NET 和 Linq to SQL 进行插入和选择的示例的链接。

    http://blogs.msdn.com/b/wriju/archive/2008/07/14/linq-to-sql-vs-ado-net-a-comparison.aspx

    我经常听到的一件事是,Linq to SQL 是为那些对 SQL 不太熟悉或者只是喜欢在 C# 或 VB.NET 代码领域工作而不是切换思维模式和思考的人准备的在 ADO.NET/inline SQL 领域中。

    【讨论】:

    • Hi Seeker - 目标数据库每天由多人恢复,而不仅仅是静态的。 (这些数据库在被删除之前工作了几个小时)。我必须动态为每个数据库创建一个 DataContext 吗?
    • 只要数据库结构保持不变并且数据库的连接字符串保持不变,它应该可以工作。对于结构,我指的是表名、表上的列、列的数据类型和存储过程名称,以及一些我确定我会忘记的东西。恢复数据库应该不是问题。
    猜你喜欢
    • 2014-08-17
    • 1970-01-01
    • 2011-07-04
    • 2012-07-05
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多