计划将项目中使用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的要点记录到改栏目下相关推荐
- java日志怎么实现_JAVA项目中怎么实现一个通用日志记录功能
JAVA项目中怎么实现一个通用日志记录功能 发布时间:2020-11-21 17:04:50 来源:亿速云 阅读:53 作者:Leah 今天就跟大家聊聊有关JAVA项目中怎么实现一个通用日志记录功能, ...
- vs2012中对于entity framework的使用
很久之前就听说过微软entity framewor的强大与便利,今天终于不手懒了,动手写了一些东西,但也遇到了一些问题. 实践步骤: 1.首先在vs2012中新建一个控制台应用程序 2.在项目中添加一 ...
- asp.net Web项目中使用Log4Net进行错误日志记录
使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能改变 ...
- 关于AudioManager在项目中遇到的一些问题的记录
在项目中涉及到语音的一些处理,其中遇到了一些问题.在打完电话后重新进入项目调起TTS,语音从话筒中出来,不从扩音器中出来,audiofocus变成了-2,并且没有重新获取.解决方案为:监听电话,手机空 ...
- MVC中使用Entity Framework 基于方法的查询学习笔记 (二)
解释,不解释: 紧接上文,我们在Visual Studio2012中看到系统为我们自动创建的视图(View)文件Index.cshtml中,开头有如下这句话: @model IEnumerable&l ...
- 浅谈Entity Framework中的数据加载方式
如果你还没有接触过或者根本不了解什么是Entity Framework,那么请看这里http://www.entityframeworktutorial.net/EntityFramework-Arc ...
- Log4j 2再现新漏洞;缺乏资助不是开源软件安全的唯一问题;微软公布 Entity Framework 7.0 计划 | 开源日报
整理 | 宋彤彤 责编 | 屠敏 开源吞噬世界的趋势下,借助开源软件,基于开源协议,任何人都可以得到项目的源代码,加以学习.修改,甚至是重新分发.关注「开源日报」,一文速览国内外今日的开源大事件吧! ...
- Entity Framework在Asp.net MVC中的实现One Context Per Request(附源码)
上篇中"Entity Framework中的Identity map和Unit of Work模式", 由于EF中的Identity map和Unit of Work模式,EF体现 ...
- Asp.Net MVC 模型(使用Entity Framework创建模型类)
Asp.Net MVC 模型(使用Entity Framework创建模型类) 这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework ...
最新文章
- 95后架构师晒出工资单:狠补了这个,真香...
- php删除修改例,PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
- Fabio 安装和简单使用
- OpenStack部署
- C++ 的语言杂谈(一)--C++不是新手友好的
- jmeter之ip欺骗
- Spring Mvc Url和参数名称忽略大小写
- 新手入门教程-------Spring Boot中集成RabbitMQ
- 使用Travis-CI 与 Github Webhook自动部署你的页面
- Solana 交易执行机制
- 便签如何把短音频文件mp3的转换成文字
- linux 可道云_阿里云linux kodexplorer可道云搭建私有云盘
- 分类排序 同辈元素只在数据上的层级关系
- 上市公司9月23日晚间公告速递
- 信号处理中使用IPP库函数的基本设置
- Windows Cmd控制台程序会被鼠标单击暂停的解决方法
- Nova 最新高度集成的SoC NT98530用于开发4K@60的IPC产品_AI算法承载硬件_开发实例
- Python之OpenCV截取视频段
- P2P TELNET
- Windows Server 2016修改Administrator的密码