2012-02-22 16 views
0

我有屬於一個區域中的對象發票內:Linq查詢找到的項目,可能是一個範圍

public class Invoice : IEntity, IValidatableObject 
    { 
      ... 

     public virtual int? AreaId { get; set; } 
      ... 
     // Navigation properties 
     public virtual Area Area { get; set; } 
      ... 
    } 

我也有一個用戶對象,它可以屬於多個方面:

public class User : IEntity, INamedType 
    { 
     ... 

     //Navigation properties 
     public virtual ICollection<Area> Areas { get; set; } 

     ... 
    } 

我想要實現的是讓用戶獲得屬於他們任何區域的所有發票。我試圖寫它,但它甚至不接近右:

var invoices = _db.Invoices.Where(x => x.AreaId == user.Areas.Contains(z => z.Id)); 

任何人都可以幫助我使用此查詢嗎?

回答

1
var invoices = _db.Invoices.Where(x => user.Areas.Any(z => z.Id == x.AreaId)); 
0

我覺得這樣的事情應該工作:

var invoices = _db.Invoices.Where(x => user.Areas.Any(z => z.ID == x.AreaId)) 
+0

嘿!我們認爲一樣:-) – 2012-02-22 20:07:54

+0

只需一秒鐘;)如果只有我沒有寫在查詢上方的文本...:P – MarcinJuraszek 2012-02-22 20:08:34