我正在考虑在我的应用程序中使用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都可以对其起作用。
答案 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领域。