Я использую EF 4.0 и POCO.Я наткнулся на эту ошибку при вставке в записи в базе данных.
Функция доступа к свойству «QualityReasonID» для объекта «BI.Entities.QualityReason» вызвала следующее исключение: «Объект не соответствует типу цели.»
При привязке данных к GridView возникают ошибки после сохранения новой записи в базе данных.Я определил, что происходит, но я не уверен, ПОЧЕМУ это происходит или я неправильно использую EF / POCO.Любое понимание будет оценено.
Исключение происходит, потому что типы объектов в IEnumerable не совпадают.Первоначальные записи в таблице имеют тип System.Data.Entity.DynamicProxies.QualityReason_E483AD567288B459706092F1825F53B1F93C65C5329F8095DD1D848B5D039F04} В то время как новый объект BI.Entities.QuailtyReg_0 * 100 * * 100 * * * * * * * * * * * * * * * * * * * * 100 * * * * * * * * * * * 100 * * * * * * * * * * 100 * * * * * * * * * * * * * 100 * 100 * * * * * * * * * * * * * * 100 * 100 * * * * * * * * * * 100*
Я исправил ошибку, изменив код выборки с:
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 каждыйвремя.Такое ощущение, что я что-то не так делаю.Есть мысли?