我正在使用EF 4.0和POCO's。在插入到數據庫中的記錄時,我偶然發現了這個錯誤。EF 4.0動態代理POCO對象與目標類型不匹配
對象'BI.Entities.QualityReason'的屬性訪問器'QualityReasonID'拋出以下異常:'對象與目標類型不匹配'。
在將新記錄保存到數據庫之後,Databind出現向GridView的錯誤。我確定發生了什麼,但我不確定它爲什麼會發生,或者如果我使用EF/POCO的方式不正確。任何洞察力將不勝感激。
發生異常是因爲IEnumerable中的對象類型不相同。 表中的原始代碼是類型System.Data.Entity.DynamicProxies.QualityReason_E483AD567288B459706092F1825F53B1F93C65C5329F8095DD1D848B5D039F04} 雖然新的代碼是BI.Entities.QuailtyReason。
這是我如何插入新的對象。
public void createQualityReason(QualityReason qReasons)
{
dbcontext.QualityReasons.AddObject(qReasons);
dbcontext.SaveChanges();
}
我通過更改取出碼解決錯誤:
public IEnumerable<QualityReason> fetchQualityReasons()
{
IEnumerable<QualityReason> queryReasons = dbcontext.QualityReasons.AsEnumerable();
return queryReasons;
}
到
public IEnumerable<QualityReason> fetchQualityReasons()
{
IEnumerable<QualityReason> queryReasons = from data in dbcontext.QualityReasons.AsEnumerable()
select new QualityReason
{
QualityReasonID = data.QualityReasonID,
QualityReasonName = data.QualityReasonName
};
return queryReasons;
}
所以要避開我必須選擇到POCO類明確每一次的錯誤。這感覺就像我錯了。有什麼想法嗎?
我想這個問題可能更多地做與GridView和數據比EF結合。 – 2010-06-22 18:03:51