gpt4 book ai didi

c# - asp.net mvc 模型与(数据库映射)对象相同吗?

转载 作者:太空宇宙 更新时间:2023-11-03 10:53:37 25 4
gpt4 key购买 nike

我有以下设置:fluent nhibernate + asp.net mvc 4。我在 VS 中有一个单独的项目,其中存储了我所有的对象,这些对象直接映射到数据库。

但是,要在 View 中显示来自这些对象的数据,我需要“模型”。

我是否需要基于这些数据库映射对象创建新的模型对象,或者我是否可以将这些数据库对象作为模型传递给 View ? (这是个好主意吗?)

谢谢!

最佳答案

在我看来,您应该创建额外的 ViewModel 类。如果要对显示的数据进行一些更改,只修改这些模型会更容易;您的域映射不会受到某些特定“呈现”情况的影响。

另一个优点是您可以使用格式化属性来修饰属性,而无需在依赖于您的域的 future 项目中强制执行这些设置。

例如,假设您的基础项目中有以下 Customer 类:

public class Customer
{
public string Name { get; set; }
public string Address { get; set; }
}

您可以在 Name 属性上添加一个 [Required] 属性,使其成为强制性的。如果对于特定项目,您还需要使 Address 属性成为必需属性,您可以使用另一个 [Required] 属性来修饰它。如果您直接使用域模型类,您将强制始终需要 Address 属性,即使项目要求没有说明这一点。这可以进一步扩展到不同的验证属性以及您可能希望与模型一起发送到 View 的其他数据(例如复合字段)。

关于c# - asp.net mvc 模型与(数据库映射)对象相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377151/

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