在Entity Framework中,可以使用lambda表達式進行對數據的查詢,而且可以將查詢結果直接映射為對象或者對象列表,這極大的提高的開發速度,並且使數據層的數據更加方便處理和傳遞。但是很多時候,我們不需要把整個表的字段都查出來,如果我們直接把整個數據實體查詢出來,就極大的影響了性能,所以我們需要通過查詢匿名對象或者已經定義的方式,對數據庫進行查詢;
1.實例使用的數據實體類:
publicclass Category
{
publicint Id { get; set; }
publicstring Name { get; set; }
publicstring Description { get; set; }
}
2.查詢
假設我們需要現實一個分類目錄,我們只需要Id和Name兩個字段,我們可以建立一個新的CategoryView
publicclass CategoryView
{
publicint Id { get; set; }
publicstring Name { get; set; }
}
查詢的時候,可以這樣做,讓它直接生成CategoryView的列表:
var data1 = from c in context.Categoriees
select new CategoryView()
{
Id = c.Id,
Name = c.Name
};
這樣,可以在將方法返回值設置為IQueryable<CategoryView>類型,在調用方法處可以直接遍歷;
然而,當沒有CategoryView的時候,我們就只能使用匿名對象進行查詢:
var data = from c in context.Categoriees
select new
{
cId = c.Id,
cName = c.Name
};
本欄目