2010-01-28 80 views

回答

1

元数据方法运行良好,但我使用的方法是有一组独立的ViewModel对象,并使用像AutoMapper这样的工具将EF对象映射到ViewModel对象。 (在更复杂的实现中,EF对象和ViewModel对象之间存在单独的域模型。)

如果您实施存储库模式来检索ViewModel对象,它也使测试控制器变得更容易。

然后,您可以将您的ViewModel对象归因于您的心脏内容,而不必担心Codegen覆盖您的属性。也可以使用其他验证方法(例如FluentValidation),因为可以使这些方法与xVal平滑工作。

+0

有没有办法使用流利客户端验证? – 2010-01-28 11:50:12

+1

这是正确的方法(+1),但投影是映射EF - >查看模型的更好方法。 http://blogs.teamb.com/craigstuntz/2009/12/31/38500/ AutoMapper意味着实现完整的实体,这意味着效率低下的SQL,并要求您考虑急切的加载,延迟加载等。投影“正常工作”。仍然为视图模型+1。 – 2010-01-28 13:50:09

+1

@craig是的,好点,好链接。 @Raul是的,你可以。在FluentValidation的最新版本中有一个FluentValidation to xVal连接。 – mkedobbs 2010-01-28 19:52:37