2011-01-10 44 views
5

SQL Server 2008 ile ASP.NET MVC uygulaması yazıyor ve yazıyorum. Ne yazık ki, bu veritabanına bağlayabileceğim tek yol, üretim ortamımda bir dsn veya ODBC yoluyla gerçekleşiyor. Geliştirme sırasında veritabanındaki verilere erişmek için bir Linq2SQL katmanı kullandım. Linq2SQL'i bir SQL İstemci bağlantısı yerine ODBC kullanmak için kullanmam için bir yol var mı?LINQ2SQL'i ODBC ile kullanabilir miyim?

cevap

2

LINQ to SQL tarafından oluşturulan kod, SQL sunucu bağlantılarına her yerde kodlanmış referanslara sahiptir, yani hayır. Ancak, DBLinq'u kullanabilirsiniz.

1

Evet, ODBC'yi SQL ile SQL'de kullanmanın bir yolu var, ancak bazı ekstra kod gerekli ve neredeyse zengin özellikli olacaktır. SELECT ifadeleri için ORM alabileceğinizi biliyorum, ancak UPDATE veya DELETE ifadeleri için işe yarayıp yaramayacağından emin değilim.

Aşağıdaki kod parçacığında, ilk önce modelimi boş bir Linq2Sql .dbml dosyasında tanımladım (elimde ihtiyacım olan alanları içeren bir PurchaseOrder nesnesi oluşturdum). Ama sonra bir ODBC bağlantısında geçirerek yeni bir veri bağlamı oluşturabildiğimi unutmayın. Son olarak, son bir numara var: Satınalma siparişlerimi almak için veri içeriğinin ExecuteQuery yöntemini SELECT bildirimi ile birlikte kullanmam gerekiyor. Eğer eşleme yerine doğrudan sunucu sorgulama olacağını olarak

using (var connection = new OdbcConnection("Driver={iSeries Access ODBC Driver};System=serverName;UID=yourUid;PWD=yourPwd")) 
{ 
    var purchaseOrderContext = new Models.PurchaseOrdersDataContext(connection); 

    var purchaseOrders = purchaseOrderContext.ExecuteQuery<Models.PurchaseOrder>("SELECT * FROM mySchema.myTable"); 
} 
5

Darin, sen Peder tarafından önerilen çözüm kullanabilirsiniz iken, bu Linq amacı yenmek. Tom "sabit kodlanmış" hakkında haklıdır, ancak bir yol vardır, kendi arayüzünüzü oluşturabilir, kavramlar üzerinde harika bir açıklama yapabilir ve nasıl yapılacağını burada bulabilirsiniz: http://blogs.msdn.com/b/mattwar/archive/2008/11/18/linq-links.aspx

İlgili konular