MVC 下分离业务逻辑,优化修改
2013-04-08 22:21
295 查看
MVC 下分离业务逻辑,优化修改
1.使用数据库单例模式容易造成数据库连接冲突,因此最好的方案应该是访问一次数据库后应该马上断开连接。即使用Using。
2.需要仓库,即实现接口的方法。
public interface IUserDbRepository:IBaseDbRepository
.......
public class UserDbRepository : IUserDbRepository
.........
3.运用反射获取到对象类型再来各自处理
4.建立空的对象,避免重复代码
5.用字典来传递需要修改的属性 这样就比较灵活。 如果全部修改对象 容易造成错误
6.深浅复制。copier
public void Update<T>(int id ,Dictionary<string,object> dictionary ) { using (var db = new NoteDb()) // using 在使用完成后自动释放资源,断开连接 { object obj=null; switch (typeof(T).Name) // 反射获取类型 switch的作用只是获取到对象 obj { case "User": obj=db.Users.SingleOrDefault(n => n.UserId == id); break; case "Permission": obj = db.Permissions.SingleOrDefault(n => n.PermissionId == id); break; case "ManagerGroup": obj = db.ManagerGroups.SingleOrDefault(n => n.GroupId == id); break; } if (obj == null) return; foreach (var element in dictionary) { ObjectCopier.CopyProperty(obj,element.Key,element.Value); } db.SaveChanges(); }
获取类的类型用 typeof(obj).name 获取引用类型的 用 t.GetType().Name
前台调用:
?
相关文章推荐
- MVC 下分离业务逻辑,优化修改
- 本地MVP模式,不用MVC、MVP、MVVM,也能分离业务和UI
- 播放器实例,采用业务逻辑分离模式即mvc模式
- 数据库系统优化--业务逻辑设计优化
- 数据库系统优化--业务逻辑设计优化
- MVC扫盲之业务逻辑
- 一次非典型SQL优化:如何通过业务逻辑优化另辟蹊径?
- MVC3 基本业务开发框架 0.7.20110614 完整的登录+注销+修改密码+灰度空间主题(2011-06-16 添加辉光效果)
- 数据库系统优化--业务逻辑设计优化
- 性能优化--数据库优化--业务逻辑优化
- MVC3中把Control中的业务逻辑层BLL单独分离出来时引用注意事项!
- ssh框架与mvc及业务逻辑之间的关系
- 在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离
- [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理
- UI和业务逻辑分离
- 利用模板和成员函数指针进行业务逻辑分离一例
- 界面层与业务逻辑分离
- 界面逻辑和业务逻辑分离的重要性
- 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 6 - 业务逻辑
- Delphi中实现界面与业务逻辑的分离