在 POCO 类上有构造函数或其他非数据库访问方法是否可以。例如,将视图模型传递给控制器时。
控制器:
public ActionResult SomeMethod(SomeViewModel model)
{
var entity = new SomePocoClasse(model);
// ... then save entity to database
return SomeActionResult
}
实体:
public SomeClass() {}
public SomeClass(SomeViewModel model)
{
// create itself based on values in model
}
public void Update(SomeViewModel model)
{
// Update itself base on values in model
}
第一个实体构造函数用于实体框架或常规创建
var entity = new entity
{
// set up properties
};
第二个是从 SomeViewModel 创建
var entity = new entity(SomeViewModel);
该方法用于从 SomeViewModel 更新自身
var entity = SomeIRepository.Get(id);
entity.Update(SomeViewModel);
还是上述不良做法应该去其他地方。