我有数据库模型,如下面的屏幕截图所示。
我希望在包含派生属性的页面中显示产品(如果它是一本书或pegi,则为isbn,如果它是游戏的话)。从Web层检索产品的最佳方法是什么?现在我有一个检索产品的方法FindProduct(long productId)
,但我怎样才能得到它的派生实例? (我有ProductDao
,BookDao
和GameDao
)谢谢。
public Product FindProduct(long productId)
{
return ProductDao.Find(productId);
}
答案 0 :(得分:1)
此示例显示了在使用ASP.NET MVC/Core
的情况下如何实现此功能
如果您不想使用dynamic
,则可以在is..as
链上替换它。
public class ProductController : Controller
{
public ViewResult Product(long productId)
{
var product = FindProduct(productId);
var productView = GetRelevantProductView((dynamic)product);
return productView;
}
private void GetRelevantProductView(Book book)
{
return View("BookView", book);
}
private void GetRelevantProductView(Game game)
{
return View("GameView", game);
}
}