MVC 下分离业务逻辑,优化修改
2013-04-08 19:22 stoneniqiu 阅读(1570) 评论(2) 编辑 收藏 举报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
前台调用:
public ActionResult Edit( int id, User user) { var dictionary = new Dictionary< string , object > { { "TrueName" , user.TrueName}, { "Sex" , user.Sex}, { "Position" ,user.Position}, { "PostionDesc" ,user.PostionDesc}, { "Password" ,user.Password}, { "ConfirmPassword" ,user.ConfirmPassword}, { "PhoneNumber" ,user.PhoneNumber}, { "CreatorId" ,user.CreatorId}, { "CraetorName" ,user.CraetorName} }; UserRepository.Update<User>(id,dictionary); return RedirectToAction( "Index" ); } |
关注书山有路,用自己的知识体系去丈量世界!
书山有路群:452450927
书山有路群:452450927
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义