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; }
}

我是用函数获取对象,对其进行修改:

         public ProjectModule GetById(Guid id)
{
return _context.ProjectModule
.FirstOrDefault(m => m.Id == id);
}

之后调用对象对其修改:

     [HttpPost]
public JsonResult Modify(ProjectModuleViewModel model)
{
using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
{
AjaxResult result = new AjaxResult(); ProjectModule module = _projectModuleService.GetById(model.Module_Id.Value);
if (model.Module_IsDelete == )
{
try
{
_projectModuleService.Delete(module);
unitOfWork.Commit(); result = new AjaxResult() { status = AjaxResultStatus.success, detail = "删除成功!" };
}
catch (Exception ex)
{
unitOfWork.Rollback();
LoggingService.Error(ex);
result = new AjaxResult() { status = AjaxResultStatus.failed, detail = "删除失败!" };
} return Json(result);
} module.DisplayOrder = model.Module_DisplayOrder;
module.Name = model.Module_Name; Project project = _projectService.GetById(model.Module_ProjectId);
module.Project = project; if (string.IsNullOrEmpty(model.Module_Name))
{
result = new AjaxResult() { status = AjaxResultStatus.failed, detail = new Dictionary<string, string>() };
result.AddDetailItem("Module_Name", "请填写模块名");
return Json(result);
} if (model.Module_ParentId.HasValue == false)
{
module.FullPathName = model.Module_Name;
module.Parent = null;
module.Grade = ;
}
else
{
if (model.Module_ParentId.Value == model.Module_Id)
{
result = new AjaxResult() { status = AjaxResultStatus.failed, detail = new Dictionary<string, string>() };
result.AddDetailItem("Module_ParentId", "节点自己不允许作为自己的子节点!");
return Json(result);
}
ProjectModule parent = _projectModuleService.GetById(model.Module_ParentId.Value); module.FullPathName = parent.FullPathName + "/" + model.Module_Name;
module.Parent = parent;
module.Grade = parent.Grade + ;
} try
{
unitOfWork.Commit(); result = new AjaxResult() { status = AjaxResultStatus.success, detail = "保存成功!" };
}
catch (Exception ex)
{
unitOfWork.Rollback();
LoggingService.Error(ex);
result = new AjaxResult() { status = AjaxResultStatus.failed, detail = "保存失败!" };
} return Json(result);
}
}

其中代码执行了 module.Parent=null之后,发现并没有把Parent对象真的赋值为null,但我修改了之后发现其他字段都已经修改了,后来发现parent字段在数据库中依然存在有值。

后来尝试了使用我尝试修改啦GetById()函数后,发现问题解决了。

修改为:

  public ProjectModule GetById(Guid id)
{
return _context.ProjectModule
.Include(x => x.Parent)
.FirstOrDefault(m => m.Id == id);
}

计划将项目中使用entity framework的要点记录到改栏目下的更多相关文章

  1. 如何在ASP.NET Core中应用Entity Framework

    注:本文提到的代码示例下载地址> How to using Entity Framework DB first in ASP.NET Core 如何在ASP.NET Core中应用Entity ...

  2. 在Oracle中使用Entity Framework 6 CodeFirst

    项目中需要将系统从SQLServer数据库迁移到Oracle上.由于原大部分数据访问操作都是通过包装了Entity Framework的统一访问入口实现的,所以需要研究Entity Framework ...

  3. Oracle中使用Entity Framework 6.x Code-First

    Oracle中使用Entity Framework 6.x Code-First方式开发 去年写过一篇EF的简单学习笔记,当时EF还不支持Oracle的Code-First开发模式,今天无意又看了下O ...

  4. dotnet ef执行报错, VS 2019发布时配置项中的Entity Framework迁移项显示不出来

    VS 2019发布时配置项中的Entity Framework迁移项显示不出来 dotnet ef dbcontext list --json “无法执行,因为找不到指定的命令或文件.可能的原因包括: ...

  5. MVC中使用Entity Framework 基于方法的查询学习笔记 (一)

    EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”-- ...

  6. Oracle中使用Entity Framework 6.x Code-First方式开发

    去年写过一篇EF的简单学习笔记,当时EF还不支持Oracle的Code-First开发模式,今天无意又看了下Oracle官网,发现EF6.X已经支持了,并且给出了二篇教程(英文版): 1.Using ...

  7. 如何使用ASP.NET Web API OData在Oracle中使用Entity Framework 6.x Code-First方式开发 OData V4 Service

    环境: Visual Studio 2013 + .Net Framework 4.5.2 1.新建项目 2.安装OData,ODP.NET 安装的包: 下面是部分代码: using System; ...

  8. [UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)

    前言 本文中,您将创建一个通用应用程序(UWP),使用Entity Framework Core(Entity Framework 7)框架在SQLite数据库上执行基本的数据访问. 准备: Enti ...

  9. UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库

    在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...

随机推荐

  1. 【HDU】1517 A Multiplication Game

    http://acm.hdu.edu.cn/showproblem.php?pid=1517 题意:每次乘上2~9..p>=n时赢.. #include <cstdio> #incl ...

  2. ObjectContext,DataContext和DBContext 分别获取linq 的sql方法

    ObjectContext 先定义一个扩展方法: public static string ToTraceString<T>(this IQueryable<T> t) { s ...

  3. libc abi.dylib: terminate_handler unexpectedly threw an exception

    错误代码:很明显的错误,一定要谨记. - (NSInteger)giftCountFullScreen{ NSArray *arr = [NSMutableArray arrayWithArray:s ...

  4. SQL 联合索引 与 单一列的索引 比较

    背景: 公司业务迅速扩展,很多网站.接口都因为大流量的数据,发生服务器习惯性死机:一条sql查询语句只能适用于一定的网络环境,没有优化的查询当遇上大数据时就不适用了. 本文主旨: 讨论什么情况下能利用 ...

  5. [转] 擎天哥as3教程系列第二回——性能优化

    所谓性能优化主要是让游戏loading和运行的时候不卡. 一  优化fla导出的swf的体积? 1,  在flash中,舞台上的元件最多,生成的swf越大,库里面有连接名的元件越多,swf越大.当舞台 ...

  6. 利用Jquery给当前页或者跳转后页面的导航栏添加选中后样式

    具体的样式有两种情况,一种是直接给当前页面添加特殊样式,当网页刷新或者跳转到下一页后,样式消失:另一种情况是即使刷新页面后样式仍然有效. 直接上代码: 第一种情况: 在CODE上查看代码片派生到我的代 ...

  7. silverlight Canvas、StackPanel、Grid三者之间的关系

    学习 silverlight   首先Canvas.StackPanel.Grid 博客园里看到jailu的这篇文章整理得很好 贴下来: Silverlight提供了非常灵活的布局管理系统,让程序员和 ...

  8. Hadoop.2.x_伪分布环境搭建

    一. 基本环境搭建 1. 设置主机名.静态IP/DNS.主机映射.windows主机映射(方便ssh访问与IP修改)等 设置主机名: vi /etc/sysconfig/network # 重启系统生 ...

  9. GitLab安装手记

    阿里云1G内存20G硬盘 1.首先下载GitLab Deb包(官网附有apt-get安装方式,但国内环境貌似不成功): https://about.gitlab.com/downloads/ 2. d ...

  10. 全选,不选,反选 jquery

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...