我正在使用ASP.NET MV5和实体框架在项目上工作。我有一些与架构应用相关的问题,以最好的方式。我得到了现有的数据库,所以我将使用代码优先的现有数据库方法(代码还是设计?)我可能也会使用存储过程。
现在,如果我使用代码优先的现有数据库设计方法,我应该为每个业务关注点或一个设计(ADO.NET实体模型)建立单独的模型。我刚刚意识到我的一些模型将在不同的业务功能之间共享例如ASP.NET身份表“角色”是在使用我的仪表板控制器的地方看到的,谁可以使用哪些功能!
我可以将现有的数据库-->设计和代码方法混合在一起吗?
如果我使用代码优先的现有数据库设计方法,我可以去修改模型吗?
我应该有一个用于读取数据库的DbContext还是单独的?我为什么要问在一个DbContext下运行的代码是否会带来所有的数据!我真的需要它吗?它会影响性能吗?安全性,否则每个业务关注点都有多个DbContext吗?
我知道这是一个非常开放的问题。我更感兴趣的是看到其他专家使用ASP.NET技术以最好的方式构建复杂的应用程序。
非常感谢
发布于 2014-02-20 12:36:12
对于小型项目,直接使用entity对象可能是可以的。但是,如果您想执行复杂的验证并应用业务规则,最好创建单独的业务对象。实体对象本质上只是数据对象。
您可以使用诸如AutoMapper之类的实用程序来简化实体和业务对象之间的转换,并消除错误和不一致,同时保持业务对象和实体对象之间的清晰分离。
从长远来看,这是一个更可持续的架构。
https://stackoverflow.com/questions/20491843
复制相似问题