2015-06-30 13 views
5

Yabancı anahtarları olmayan 3 tablom var (bu bir eski db, bu yüzden değiştiremiyorum). modeli bu (sql kodu) gibi bir şey olacaktır:Yabancı anahtarları olmayan 3 tabloya Linq

Select 
    PROD.ProductoId, 
    PROD.Descripcion, 
    STK.StockActual, 
    DEPO.DepositoId, 
    DEPO.Descripcion 
From 
    Productos PROD, 
    Stock  STOK, 
    Depositos DEPO 
where 
    PROD.ProductoId = STOK.ProductoId 
    and DEPO.DepositoId = STOK.DepositoId 

nasıl yapabilirim C# üzerinde Linq ile aynı sonuçları elde etmek için?

+1

Konu dışı tavsiyesi: 'JOIN' sözdizimi kullanarak, yani tablo açıkça katılır belirtin:' ... Productos PROD DAN PROD Stok Stok KATILIN DEPO.DepositoId = STOK.DepositoId =. Bunu yapmanın nedenleri için [bu Programcılar SE Soru ve Cevapları] 'na bakın (http://programmers.stackexchange.com/questions/78225/using-join-keyword-or-not). – stakx

cevap

2

bu deneyin:

var result = from prod in _context.Productos 
      join stok in _context.Stocks on prod.ProductoId equals stok.ProductoId 
      join depo in _context.Depositos on stok.DepositoId equals depo.DepositoId 
      select new 
      { 
       ProductoId = prod.ProductoId, 
       ProductoDescripcion = prod.Descripcion, 
       StockActual = stok.StockActual, 
       DepositoId = depo.DepositoId, 
       DepositoDescripcion = depo.Descripcion 
      }; 
+0

Ben deneyeceğim ve sonra sonucu göndereceğim! Teşekkür ederim!! –

+0

Elbette, doğru olup olmadığından emin değilim. Sadece linq kullanmaya başladım. –

+0

İlk katılımdan sonra PROD.ProductoId, PROD.Descripcion, STK.StockActual, STOK.DepositoId'yi yeni tabloya seçmeli ve –

2

Neden Sql'de bir Görünüm oluşturmuyorsunuz ve modelinizi güncelleyerek View sınıfından sorgulayabilirsiniz.

+0

Tks ancak db'de hiçbir şey oluşturamıyorum çünkü üncü bir sistemden geliyor. –

1

bu deneyin:

var Query = from data in _db.Productos 
join stock in _db.Stock on data.ProductId equals stock.ProductoId 
join Depositos in _db.Depositos on data.DepositoId equals Depositos.DepositoId 
select new { ProductoId,Descripcion, StockActual,DepositoId,Descripcion}; 
İlgili konular