У меня есть несколько продуктов, любые, все или ни один из которых может быть связан с конкретной отправкой.Все 7 товаров являются подклассами класса Product.Мне нужно сохранить все продукты, связанные с отправкой, а затем извлечь их и их полевые данные на моем уровне представления.Я использую List<Product>
и List<object>
, но когда я использую OfType<EPL(specific subclass)>
, я выдаю сообщение о том, что не могу неявно преобразовать systems.generic.IEnumerable<EPL>
в тип «Product».Я пытался сыграть, но безрезультатно.
Когда я использую prodlist.OfType<EPL>();
, ошибок нет, но когда я пытаюсь сохранить их в экземпляре EPL "tempEpl", я получаю вышеупомянутую ошибку, связанную с приведением типов.Что дает?Код ниже.
ProductService pserv = new ProductService();
IList<object> prodlist = pserv.getProductById(x);
EPL tempEpl = new EPL();
if ((prodlist.OfType<EPL>()) != null)
{
tempEpl = prodlist.OfType<EPL>(); // this throws a conversion error.
}
Уровень данных
List<object> TempProdList = new List<object>();
conn.Open();
SqlCommand EplCmd = new SqlCommand(EPLQuery, conn);
SqlDataReader EplRead = null;
EplRead = EplCmd.ExecuteReader();
EPL TempEpl = new EPL();
if (EplRead.Read())
{
TempEpl.Entity1 = EplRead.GetString(0);
TempEpl.Employees1 = EplRead.GetInt32(1);
TempEpl.CA1 = EplRead.GetInt32(2);
TempEpl.MI1 = EplRead.GetInt32(3);
TempEpl.NY1 = EplRead.GetInt32(4);
TempEpl.NJ1 = EplRead.GetInt32(5);
TempEpl.PrimEx1 = EplRead.GetInt32(6);
TempEpl.EplLim1 = EplRead.GetInt32(7);
TempEpl.EplSir1 = EplRead.GetInt32(8);
TempEpl.Premium1 = EplRead.GetInt32(9);
TempEpl.Wage1 = EplRead.GetInt32(10);
TempEpl.Sublim1 = EplRead.GetInt32(11);
TempProdList.Add(TempEpl);
}