madlan
madlan

Reputation: 1397

executing insert\update\deletes - Use Linq?

I was looking at using linq to sql (or EF) rather than in line\dynamic sql within my application but have hit a possible issue. My application modifies data against any number of random databases accross several sql instances, linq appears to structured towards a single database scenario. Would it be best to just continue using in line sql or is there a method of using linq without tying it down to a single database?

An example of what I'm doing at the moment:

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

And example of a query would be:

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

Although I am executing stored procedures within these databases, some custom, others for adding users (sp_adduser)

All target databases have the same structure, so any query\linq would work against it.

Upvotes: 0

Views: 386

Answers (1)

seekerOfKnowledge
seekerOfKnowledge

Reputation: 524

With LINQ, you are correct in that a DataContext goes to one single database, but you can have many DataContexts, each going to a different database. You can have, for example, a SettingsDataContext going to the database with your settings and a UsersDataContext going to the database with your users, or however you have it set up.

There is the syntax of it all. Here is a link to some examples of doing inserts and selects with ADO.NET and Linq to SQL.

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

One thing I have heard often is that Linq to SQL is for those that aren't real comfortable with SQL or who just like to work in the realms of C# or VB.NET code more than having to switch thought patterns and think in the ADO.NET/inline SQL realm.

Upvotes: 1

Related Questions