2010-11-03 45 views
12

Giả sử tôi có một thực thể cha mẹ "Công ty" và một số ít các thực thể con kế thừa từ Công ty. Giả sử trẻ em được đặt tên là "RedFirm", "GreenFirm" và "BlueFirm", cách thích hợp để truy vấn bộ sưu tập Công ty là gì nếu tôi chỉ muốn truy xuất các phiên bản RedFirm và GreenFirm?Entity Framework OfType()

Tôi biết tôi có thể làm context.Firms.OfType(RedFirm), nhưng điều đó chỉ trả về các phiên bản RedFirm. Có anyway để vượt qua một bộ sưu tập các loại vào OfType hoặc một cái gì đó tương tự như vậy? Tôi cho rằng điều này có thể được thực hiện thông qua một liên minh nhưng tôi nghĩ điều đó sẽ kém hiệu quả hơn.

Trả lời

20
context.Firms.Where(x => x is RedFirm || x is GreenFirm); 
7

Bạn có thể làm một cái gì đó như:

context.Firms.Where(item => (!(item is BlueFirm))); 
1
context.Firm.OfType<RedFirm>()./Rest of the query/ 

Đây là cách để người dùng OfType