C# 带有额外字段的模型

C# 带有额外字段的模型,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,假设我有一个包含一大堆字段的表和为其生成的EF实体。假设我想为这个实体显示一个编辑表单,但是有一个不直接映射到表的额外字段 所以我创建了一个模型类,它继承了实体类和字段。到目前为止还不错 问题是,现在我必须在返回视图时将每个字段从实体对象复制到模型对象,而在保存数据时则相反。当然有一种更干净的方法可以做到这一点吗 具体示例为用户管理表单,额外字段为密码和确认密码字段,存储在成员资格表中。最好将用于在应用层(如UI)和连接到存储的原始实体之间通信的数据传输对象分开。是的,您需要来回复制字段,但是有

假设我有一个包含一大堆字段的表和为其生成的EF实体。假设我想为这个实体显示一个编辑表单,但是有一个不直接映射到表的额外字段

所以我创建了一个模型类,它继承了实体类和字段。到目前为止还不错

问题是,现在我必须在返回视图时将每个字段从实体对象复制到模型对象,而在保存数据时则相反。当然有一种更干净的方法可以做到这一点吗


具体示例为用户管理表单,额外字段为密码和确认密码字段,存储在成员资格表中。

最好将用于在应用层(如UI)和连接到存储的原始实体之间通信的数据传输对象分开。是的,您需要来回复制字段,但是有一些工具可以帮助您完成此任务,例如。

您可以将EF实体
设置为部分
(我认为默认情况下通常是部分的),然后将字段添加到一个单独的文件中,该文件也包含该类的
部分类。这并不像Ilya的答案那样好,但很简单。

使用
AutoMapper
不需要完整的答案,只需谷歌搜索,将这些属性放在部分类中不会有帮助。所有部分将一起编译并视为一个模型,因此EF将为所有属性创建列。@CodeCaster-取决于您是先执行代码还是先执行数据库。如果您已经有了数据库,您可以添加任何您想要的内容,并且它不会创建更多的列。