私はいくつかの製品を持っています。その製品の一部または全部は、特定の提出物に関連している可能性があります。 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);
}
。ありがとう。 if!nullについては、提出物にEPL製品が添付されているかどうかを判断する必要があります。私は、新しいtempEpl値でif文を実行できると思います。 –
@Brazos:そうです。 –