gpt4 book ai didi

asp.net-mvc - MVC3继承问题

转载 作者:行者123 更新时间:2023-12-02 22:40:22 24 4
gpt4 key购买 nike

我有一个包含以下表的数据库

  • 业务(包含所有常用字段)
  • Business_Hotel(包含特定于酒店的字段)
  • Business_Resaraunt(包含特定于 Restaraunts 的字段)
  • Business_Airport(包含特定于机场的字段)

我使用继承在 EF 中对这些进行建模。

  • 企业(基地)
  • 酒店(继承自企业)
  • 餐馆(继承自企业)
  • 机场(继承自企业)

我使用基本实体(企业)在 VS2010 中使用 Controller 创建向导创建了 Controller

我想对所有三种类型重复使用相同的创建操作。

 [HttpPost]
public ActionResult CreateHotel(Business business)
{


if (ModelState.IsValid)
{


db.Businesses.AddObject(business);
db.SaveChanges();
return RedirectToAction("Index");
}

如果我修改如下所示的函数,它会正确地创建一个酒店类型的企业

 public ActionResult CreateHotel(Hotels business)

所以问题是我怎样才能动态地做到这一点。有更好的方法吗?

最佳答案

作为建议,您最好不要尝试重用单个Action(即使 DRY 原则看起来很吸引人)

即使您可以找到一种方法来做到这一点,将来也很难维护。

你要做的是:

将商务酒店视为商务餐厅,将其中任何一种视为商务机场。你知道有什么不对吗?酒店应该有自己的商业规则,机场和餐厅也一样

如果您将来尝试为它们中的每一个添加一些特定的逻辑,您的操作方法会增加复杂性(顺便说一句,操作方法应该只调用模型以保持它们干净)。

这在蓝皮书 (DDD) 中有更好的描述

所以我的建议是不要重用这种逻辑(域逻辑),我个人尝试只重用基础设施逻辑

关于asp.net-mvc - MVC3继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10865558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com