好的,我有一个名为Product的抽象类,与之相关的有3个表Items、Kits和Packages。这些表都是Product的实现。Product有一个公共属性,用于暴露对象的主键。
也就是说,我有一个表单,需要传递一个产品。我希望在不必写大量反射代码来获取正确的表格类型的情况下,能够从新的数据上下文中提取该产品。
我想做这样的事情,但是转换部分不接受foo。
public BuilderInclusionsForm(Product p) : this()
{
Type foo = p.GetType();
product = db2.GetTable(p.GetType()).Cast<foo>().SingleOrDefault(a =>
a.ProductID == p.ProductID);
或者这个:
public BuilderInclusionsForm(Product p) : this()
{
Type foo = p.GetType();
product = db2.GetTable(p.GetType()).OfType<foo>().SingleOrDefault(a =>
a.ProductID == p.ProductID);