计划将项目中使用entity framework的要点记录到改栏目下
生活随笔
收集整理的這篇文章主要介紹了
计划将项目中使用entity framework的要点记录到改栏目下
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ef監控sql執行性能日志。http://www.cnblogs.com/CreateMyself/p/5277681.html
http://123.122.205.38/cn_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_522233.iso?fid=hqkUfQCwLLgefGdBiOC73ps1JxMA*O0VAQAAAGT1XOywsz1scWyaiQsnM*YF3JxX&mid=666&threshold=150&tid=E644E3AB354940E901996D7CF1F47CF9&srcid=119&verno=1
?
今天在做畢業設計時,遇到了一個很郁悶的問題:
public partial class ProjectModule : Entity{public ProjectModule(){Id = GuidComb.GenerateComb();}public Guid Id { get; set; }public string Name { get; set; }public int Grade { get; set; }public int DisplayOrder { get; set; }public string FullPathName { get; set; }public virtual Project Project { get; set; }public virtual ProjectModule Parent { get; set; }}?我是用函數獲取對象,對其進行修改:
1 public ProjectModule GetById(Guid id) 2 { 3 return _context.ProjectModule 4 .FirstOrDefault(m => m.Id == id); 5 }之后調用對象對其修改:
1 [HttpPost] 2 public JsonResult Modify(ProjectModuleViewModel model) 3 { 4 using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork()) 5 { 6 AjaxResult result = new AjaxResult(); 7 8 ProjectModule module = _projectModuleService.GetById(model.Module_Id.Value); 9 if (model.Module_IsDelete == 1) 10 { 11 try 12 { 13 _projectModuleService.Delete(module); 14 unitOfWork.Commit(); 15 16 result = new AjaxResult() { status = AjaxResultStatus.success, detail = "刪除成功!" }; 17 } 18 catch (Exception ex) 19 { 20 unitOfWork.Rollback(); 21 LoggingService.Error(ex); 22 result = new AjaxResult() { status = AjaxResultStatus.failed, detail = "刪除失敗!" }; 23 } 24 25 return Json(result); 26 } 27 28 module.DisplayOrder = model.Module_DisplayOrder; 29 module.Name = model.Module_Name; 30 31 Project project = _projectService.GetById(model.Module_ProjectId); 32 module.Project = project; 33 34 if (string.IsNullOrEmpty(model.Module_Name)) 35 { 36 result = new AjaxResult() { status = AjaxResultStatus.failed, detail = new Dictionary<string, string>() }; 37 result.AddDetailItem("Module_Name", "請填寫模塊名"); 38 return Json(result); 39 } 40 41 if (model.Module_ParentId.HasValue == false) 42 { 43 module.FullPathName = model.Module_Name; 44 module.Parent = null; 45 module.Grade = 0; 46 } 47 else 48 { 49 if (model.Module_ParentId.Value == model.Module_Id) 50 { 51 result = new AjaxResult() { status = AjaxResultStatus.failed, detail = new Dictionary<string, string>() }; 52 result.AddDetailItem("Module_ParentId", "節點自己不允許作為自己的子節點!"); 53 return Json(result); 54 } 55 ProjectModule parent = _projectModuleService.GetById(model.Module_ParentId.Value); 56 57 module.FullPathName = parent.FullPathName + "/" + model.Module_Name; 58 module.Parent = parent; 59 module.Grade = parent.Grade + 1; 60 } 61 62 try 63 { 64 unitOfWork.Commit(); 65 66 result = new AjaxResult() { status = AjaxResultStatus.success, detail = "保存成功!" }; 67 } 68 catch (Exception ex) 69 { 70 unitOfWork.Rollback(); 71 LoggingService.Error(ex); 72 result = new AjaxResult() { status = AjaxResultStatus.failed, detail = "保存失敗!" }; 73 } 74 75 return Json(result); 76 } 77 }?
其中代碼執行了 module.Parent=null之后,發現并沒有把Parent對象真的賦值為null,但我修改了之后發現其他字段都已經修改了,后來發現parent字段在數據庫中依然存在有值。
后來嘗試了使用我嘗試修改啦GetById()函數后,發現問題解決了。
修改為:
public ProjectModule GetById(Guid id){return _context.ProjectModule.Include(x => x.Parent).FirstOrDefault(m => m.Id == id);}?
轉載于:https://www.cnblogs.com/yy3b2007com/p/5284723.html
總結
以上是生活随笔為你收集整理的计划将项目中使用entity framework的要点记录到改栏目下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript高级程序设计-读书笔
- 下一篇: CUBRID学习笔记 31 通过sele