Birçok veritabanında LINQ

oy
35

Ben LINQ yoluyla birleştirilmesi gerekmektedir iki tablo var ama bunlar farklı veritabanlarında yaşıyor. Şu an sonra döngü ve tahmin edebilirsiniz gibi, hangi diğer sonuçlarını alma, bir tablonun sonuçlarını iade ediyorum korkunç verimli değildir. Tek bir LINQ deyimi içine almak için herhangi bir yolu var mı? döngünün olmaması için bu inşa etmek başka bir yolu var mı? Her ihtimale karşı bir şey bakan değilim, fikirler arıyorum.

Ben veritabanlarını değiştiremeyeceği anlamına, yani diğer başvuran birinde bir görünüm oluşturamazsınız unutmayın. Henüz denemedim şey hem tabloları başvuran üçüncü veritabanında görüşlerini yaratıyor. Herhangi bir fikir bekliyoruz.

Oluştur 09/12/2008 saat 15:43
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
6

veritabanınızda bir proc / görünüm oluşturun.

Cevap 09/12/2008 saat 16:04
kaynak kullanıcı

oy
0

senin koşullar göz önüne alındığında, tek Linq açıklamada yapabilirsiniz sanmıyorum. Ama bir Linq Nesneleri sorgunun içine L2S sorgularının sonuçlarını katılabilir.

Cevap 09/12/2008 saat 16:11
kaynak kullanıcı

oy
39

Sen olabilir Eğer diğerinden veritabanına erişebilir sürece, hatta sunucular arasında, bunu. O karşı bir SQL deyimi yazmak mümkündür Yani, eğer ServerA . Veri bankasının erişen ServerB . DatabaseB . şema . TableWhatever , o zaman LINQ aynı şeyi yapabilir.

Bunu yapmak için, elle .dbml dosyasını düzenlemek gerekir. , Sağ tıklayın seç: Kolayca böyle VS 2008 yapabilirsiniz Birlikte Aç ... ve seçmek XML Editor .

Bak Bağlantı dosyasının başında olmalıdır elemanı. Ne yapmak gerek (farklıysa ve sunucu adı) veritabanı o bağlantı dize tarafından işaret değil de tablolar için açık bir veritabanı adını sağlamaktır.

Bir açılış etiketi Tablo senin .dbml içinde eleman şuna benzer:

<Table Name="dbo.Customers" Member="Customers">

Ne yapmanız gereken herhangi bir tablo için vardır değil bağlantı dizesinin veritabanında, bunu değiştirmek ismi bunlardan biri gibi bir şey niteliğini:

<Table Name="SomeOtherDatabase.dbo.Customers" Member="Customers">
<Table Name="SomeOtherServer.SomeOtherDatabase.dbo.Customers" Member="Customers">

Eğer sorun yaşarsanız kesin olan diğer veritabanı (veya sunucu) orijinal veritabanı (veya sunucu) gerçekten erişilebilir olun. SQL Server Management Studio'da, böyle bir şey yapar özgün veritabanıyla çalışan küçük bir SQL deyimi yazmayı deneyin:

SELECT SomeColumn
FROM OtherServer.OtherDatabase.dbo.SomeTable

Eğer bu işe yaramazsa, aynı şifre ile her iki veritabanlarına erişimi olan bir kullanıcı veya giriş olduğundan emin olun. Bu, elbette, sizin .dbml bağlantı dizesinde kullanılanla aynı olmalıdır.

Cevap 09/12/2008 saat 16:24
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more