我想訪問一個存儲過程,使用一個id檢索一個頁面。C#:不能隱式轉換類型
但我得到一個錯誤:
Error 1 Cannot implicitly convert type
'System.Data.Entity.Core.Objects.ObjectResult<StorePageCMS.Models.mn_StorePage_Select_One_Result>' to 'StorePageCMS.Models.StorePage'
我不知道如何解決這個問題。來自SQL Server的dbEntities的存儲過程確實需要一個int參數。
任何幫助,非常感謝。
public StorePage Get(int StorePageID)
{
using (dbEntities db = new dbEntities())
{
StorePage storepage = db.mn_StorePage_Select_One(StorePageID);
if (storepage == null)
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
return storepage;
}
}
UPDATE
我改寫的方法是這樣的:
public List<StorePage> Get(int StorePageID)
{
List<StorePage> storepagelist = new List<StorePage>();
using (dbEntities db = new dbEntities())
{
var results = db.mn_StorePage_Select_One(StorePageID).ToList();
foreach (var result in results)
{
var storepage = new StorePage()
{
StorePageID = result.StorePageID,
SPPreambleID = result.SPPreambleID,
Title = result.Title,
SEOTitle = result.SEOTitle,
ParentStorePageID = result.ParentStorePageID ?? -1,
Meta = result.Meta,
Image = result.Image,
ImageLink = result.ImageLink,
Blurb = result.Blurb,
RegionID = result.RegionID,
Footer = result.Footer
};
storepagelist.Add(storepage);
}
return storepagelist;
}
}
這是否看起來更正確?
2 UPDATE
這是否看起來是正確的?
您無法直接將數據庫查詢調用到類中。您需要物理地將數據庫字段中的項目轉移到類屬性中,或者使用序列化或反射。請Google「C-sharp sql datareader」和我在這裏使用的其他關鍵字的一些想法 –
檢查你的DataContext文件或者如何調用我不確定,並且你必須改變存儲過程的返回類型,試試這個: 'StorePageCMS.Models.mn_StorePage_Select_One_Result storepage = db.mn_StorePage_Select_One(StorePageID);' –
我添加了一個更新,請問您是否可以告訴我這個方法是否更接近它的工作原理?謝謝。 –