执行insert \ update \ delete - 使用Linq?

时间:2011-01-04 15:16:44

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

我正在考虑在我的应用程序中使用linq到sql(或EF)而不是在行\ dynamic sql中但是遇到了可能的问题。我的应用程序针对几个sql实例中的任意数量的随机数据库修改数据,linq似乎构建为单个数据库方案。最好是继续使用in line 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都可以对其起作用。

1 个答案:

答案 0 :(得分:1)

使用LINQ,你是正确的,因为DataContext转到一个单独的数据库,但你可以拥有许多DataContexts,每个DataContexts都会转到不同的数据库。例如,您可以将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领域。