我知道这听起来很奇怪 - 让我解释一下:
我目前正在开发一个标准的带数据库的Web应用程序。我选择使用IoC框架(Ninject),Entity Code First,Bootstrap和其他相关技术。我已经用UML转录了数据库模型,现在正在逐步实现它。通常是按照以下步骤进行:
- 选择要实现的功能。
- 检查需要哪些数据库表。
- 创建适当的POCO类。
- 使用迁移工具生成新的数据库。
- 创建所有所需的CRUD方法以满足该功能。 (我知道我应该创建单元测试,但时间真的不够:/)
首先的问题是 - 你是否认为上述内容“正常”?也许我错过了一些可以加快开发速度的东西?或者我应该添加更多步骤 - 例如提前捕获更多错误?
现在下一步是创建视图,所以我会这样做:
- 在适当的控制器中创建ViewMethod。
- 基于一个或多个POCO数据库类创建ViewModel。
- 为我的新ViewModel创建编辑器模板。
- 在控制器中创建功能逻辑。
上述方法的问题是:
I often have to create nearly a duplicate of POCO entity, then - during save procedure, I need to convert it back to the appropriate POCO entities, usually like this:
PocoEntity1 pocoEntity1 = new () { UserName = ViewModel.UserName, UserPicture = ViewModel.UserPicture (and so on) }
[Required]
[StringLength(128)]
[DisplayNameLocalizer("FirstName", typeof(TranslationStrings))]
这并不是推荐的做法(有时我想为某些属性设置不同的名称,具体取决于视图)。
问题在于 - 是否有什么“中间”方式?例如,直接将ViewModelEntity转换为POCO实体的方法会非常有帮助。我是否可以做些什么来加速,或者我现在的做法是否正确?