代码之家  ›  专栏  ›  技术社区  ›  ozz

Asp.net MVC体系结构

  •  0
  • ozz  · 技术社区  · 14 年前

    我的第一个MVC项目即将结束,我对如何构建模型对象并不太满意,我正在寻找一些关于如何改进它们的想法。

    我为每个DB表使用存储库和Get、Save、Delete等方法。 存储库使用Linq2Sql进行数据库访问。

    我做了从Linq2Sql对象到MVC模型对象的映射,主要是1到1的映射。

    我的问题是,我认为我的MVC模型对象不够精细,而且我可能来回传递的数据比需要的多。

    例如,我有一个用户表。管理员可以像编辑用户本身一样编辑用户的详细信息,所以我认为我应该有一个“admin UserModel”和“UserModel”对象,其中“AdminUserModel”有一组更大的值(例如,可以启用)。

    所以我更大的问题是,人们在野外使用什么样的架构,以便将许多相似的、相关的模型对象通过层映射到数据库?

    除了NerdDinner之外,还有什么样的架构解决方案可以推荐吗?

    提前谢谢!

    2 回复  |  直到 14 年前
        1
  •  1
  •   Kennethvr    14 年前

    对于用户模型,应该使用继承来代替两个独立的模型。这样,您就可以在继承它的代码中使用为用户创建的代码。

    你使用的模型类型完全取决于你想用它做什么。一个好的办法可能是看一看模式,并尝试让模式为您的情况所需的工作。。。

        2
  •  1
  •   TimC    14 年前

    我通常在模型中采用实现继承。 我通常有一个实体基类,它有id、datecreated、valid和实体间共享的任何其他字段(publishStatus、locked等)。 如果需要,可以创建从实体继承的其他基类:person实体、product实体等。

    这样,您就可以拥有一个通用的存储库库库,约束为 Entity IEntity ,我发现大多数实体CRUD函数不需要比泛型基提供的行为更多的行为(也许您需要为某些类型添加一些额外的get方法)

    对你来说, AdminUser 可以继承自 User