计划将项目中使用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; }
}
我是用函数获取对象,对其进行修改:
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的要点记录到改栏目下的更多相关文章
- 如何在ASP.NET Core中应用Entity Framework
注:本文提到的代码示例下载地址> How to using Entity Framework DB first in ASP.NET Core 如何在ASP.NET Core中应用Entity ...
- 在Oracle中使用Entity Framework 6 CodeFirst
项目中需要将系统从SQLServer数据库迁移到Oracle上.由于原大部分数据访问操作都是通过包装了Entity Framework的统一访问入口实现的,所以需要研究Entity Framework ...
- Oracle中使用Entity Framework 6.x Code-First
Oracle中使用Entity Framework 6.x Code-First方式开发 去年写过一篇EF的简单学习笔记,当时EF还不支持Oracle的Code-First开发模式,今天无意又看了下O ...
- dotnet ef执行报错, VS 2019发布时配置项中的Entity Framework迁移项显示不出来
VS 2019发布时配置项中的Entity Framework迁移项显示不出来 dotnet ef dbcontext list --json “无法执行,因为找不到指定的命令或文件.可能的原因包括: ...
- MVC中使用Entity Framework 基于方法的查询学习笔记 (一)
EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”-- ...
- Oracle中使用Entity Framework 6.x Code-First方式开发
去年写过一篇EF的简单学习笔记,当时EF还不支持Oracle的Code-First开发模式,今天无意又看了下Oracle官网,发现EF6.X已经支持了,并且给出了二篇教程(英文版): 1.Using ...
- 如何使用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; ...
- [UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)
前言 本文中,您将创建一个通用应用程序(UWP),使用Entity Framework Core(Entity Framework 7)框架在SQLite数据库上执行基本的数据访问. 准备: Enti ...
- UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库
在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...
随机推荐
- ubuntu13.04下安装jdk7
参考http://www.neversaydie.cc/ubuntu-install-jdk-in-detailed/ 而来 1.手工从Oralce官网下载jdk-7u25-linux-x64.gz ...
- BZOJ4552: [Tjoi2016&Heoi2016]排序
Description 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮助他.这个难题是这样子的:给出一个1到n的全排列,现在对这 ...
- Linux多线程实例练习 - pthread_cancel()
Linux多线程实例练习 - pthread_cancel 1.代码 xx_pthread_cancel.c #include <pthread.h> #include <stdio ...
- js正则表达式 验证手机号,email地址和邮政编码
手机号码的验证(13开头和158,159开头,共11位) var re; var ss=document.getElementById('textbox3').value; ...
- 【Go语言】学习资料
这段时间一直在看Go语言,6月3日Apple发布了swift发现里面竟然也有许多Go语言的影子,截至现在每天都在感觉到Go语言的强大.确实值得一学 今天在这里给园友们推荐一些Go语言的学习资料 网站 ...
- How parse REST service JSON response
1. get JSON responses and go to : http://json2csharp.com/ 2. write data contracts using C# All class ...
- 11877 The Coco-Cola Store
题目: 11877 The Coco-Cola Store Once upon a time, there is a special coco-cola store. If you retur ...
- Log打印日志遇到的问题
Log日志打印出现空指针问题 AndroidRuntime(372): Caused by: java.lang.NullPointerException: println needs a messa ...
- Lrucache缓存技术
在Android中,有一个叫做LruCache类专门用来做图片缓存处理的. 它有一个特点,当缓存的图片达到了预先设定的值的时候,那么近期使用次数最少的图片就会被回收掉. 步骤: (1)要先设置缓存图片 ...
- sql*loader的直接加载方式和传统加载方式的性能差异
1.确认数据库版本 2.数据准备 3.创建导入表及控制文件 4.直接加载方式演示 查看具体的日志: 5.传统加载方式演示 查看日志文件: 6.结论及两种方式的差异 经过比对direct比convent ...