[英]Accessing un-mapped entities from Entity Framework SqlQuery
我正在使用實體框架,我有一個實體類,其中包含2個字段:
我有一個存儲過程,該過程返回上面的實體以及另外一個稱為TotalRecords
實體。 我在上面的類中創建了一個名為TotalRecords
的新實體,並向其添加了[NotMapped]
屬性。
現在,當我調用存儲過程時,它不會映射到新實體TotalRecords
; 我理解是因為我在上面添加了一個屬性[NotMapped]
,但是如果我不應用該屬性,它只會在數據庫表中創建一個新列,這不是我的意圖。
這是我調用SqlQuery
來執行存儲過程的方法:
var _products = db.Products.SqlQuery("GetProductsByCategory @p0,@p1,@p2", categoryID, pageIndex, Common.PAGE_SIZE).ToList();
誰能告訴我如何從存儲過程中獲取TotalRecords
字段,而無需在數據庫中添加新列? 正如我前面所說,我只有一個列額外,其余全部被映射到數據庫表的Products
您要做的就是創建一個對象,該對象的屬性名稱與存儲過程返回的結果相同。 您可以嘗試遵循示例。 希望對您有幫助,我的朋友。
1)首先,創建一個像這樣的類:
public class ProductResult
{
public string Name { get; set; }
public string Description { get; set; }
public decimal TotalRecords { get; set; }
}
2)然后調用程序:
using(var context = new DatabaseContext())
{
var categoryIdParameter = new SqlParameter("@p0", categoryID);
var pageIndexParameter = new SqlParameter("@p1", pageIndex);
var pageSizeParameter = new SqlParameter("@p2", Common.PAGE_SIZE);
var result = context.Database
.SqlQuery<ProductResult>("GetProductsByCategory @p0, @p1, @p2", categoryIdParameter, pageIndexParameter, pageSizeParameter)
.ToList();
}
結果將包含ProductResult對象的列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.