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. SVN错误:Attempted to lock an already-locked dir

    在eclipse里提交和更新文件是报错: Attempted to lock an already-locked dir svn: Working copy 'F:\workspace\WebFram ...

  2. CentOS评估磁盘I/O性能读写极限测试

    用一个fio工具 安装 yum -y install fio 二,FIO用法: 随机读:fio  -direct=1 -iodepth 1 -thread -rw=randread -ioengine ...

  3. [CareerCup] 16.6 Synchronized Method 同步方法

    16.6 You are given a class with synchronized method A and a normal method B. If you have two threads ...

  4. CI框架不能有Index控制器

    今天部署了ci框架,想用用它.创建别的控制器没什么错误.但是我创建了一个Index控制器,并访问了index方法,报错了.但是直接在方法中写输出就没事.而且方法名称改为其他部位index的也能访问. ...

  5. windows用户用VMware 虚拟机安装黑苹果Mac.OS.X操作系统

    使用的操作系统操作系统 windows7 SP1 X64 本教程所用 的软件的下载地址都在本教程中 ) 电脑内存低于 4G 的,加内存吧 … 1. SecurAble (检测你的 CPU 是否支持硬件 ...

  6. SVN 的安装与配置

    1.下载subclipse1.6的site包 2.把这个site-1.6.2解压开,将其内部的文件,全部放到 C:\Program Files\MyEclipse\MyEclipse 9\dropin ...

  7. js 将一段html插入到body最前面

    var wrap=document.createElement("div"); var first=document.body.firstChild;//得到页面的第一个元素 va ...

  8. WordPress模板常用函数

    基本条件判断Tag is_home() : 是否为主页 is_single() : 是否为内容页(Post) is_page() : 是否为内容页(Page) is_category() : 是否为C ...

  9. Mysql忽略文件名的安全编码

    author:skatetime:2014/09/28 mysql如何删除以"#sql-"开头的临时表 现象:在重建索引后,发现Mysql服务器的磁盘空间快满了 在用如下命令重建索 ...

  10. EDI - Biztalk Sample

    1. EDI Control - Scripting Usage: