前言 对于应用程序开发者来说,通常不需要考虑太多对于Entity Framework中的变更追踪(change tracking),但是变更追踪和DetectChanges方法是栈的一部分,在这其中,易用性和性能就紧密关联.所以,鉴于此理由,对于你继续看接下来的内容那将是非常有帮助. DetectChanges用途 接下来的内容将用下两个简单的Code First Model和Context(一个是Post类,一个是Blog类,一个博客可以发表多篇文章,但一篇文章只属于一个博客) public…
前言 之前我们系统学习了EntityFramework,个人觉得有些东西不能学了就算完了,必须要学以致用,在Web API上也少不了增(C).删(D).改(U).查(R).鉴于此,我们通过EF来实现Web API上的增删改查. 之前对于EF的基本操作都是很零散的,我们应该对于CRUD都是通过完整封装来实现,并且也显得比较专业,接下来首先对EF利用Responsitory仓储模式进行完整封装. EntityFramework完整封装 我们建立一个Core(核心类库),里面存放有关EF的完成封装.…
实体类 public class TestDbContext : DbContext { public DbSet<Test> Tests { get; set; } public TestDbContext() : base() { } } public class Test { public long ID { get; set; } public string Name { get; set; } public string Email { get; set; } public stri…
例: 实体类: public class TestDbContext : DbContext { public DbSet<Test> Tests { get; set; } public TestDbContext() : base() { } } public class Test { public long ID { get; set; } public string Name { get; set; } public string Email { get; set; } public…
现在我们来学习,当数据库初始化的时候,Code First怎样设置数据库的名字. 下面的图显示了数据库初始化的工作流程,根据传入给context基类的构造函数的参数来初始化: 根据上面的图,context基类的构造函数可以传入如下参数: 无参数 参数为数据库名称 参数为连接字符串 无参数的构造函数: 如果不传参数给context基类的构造函数,它就会在我们本地创建一个以{命名空间}.{Context类名}为名字的数据库.比如下面代码会创建一个名字为SchoolDataLayer.Context的…
1.在EFDemo文件夹中添加Controllers文件夹(用的是上一篇MVC学习笔记(二)—用EF创建数据库中的项目) 2.在Controllers文件夹下添加一个空的控制器(StudentsController) 3.在StudentsController中的Index方法中添加视图 4.在EFDemo中添加EFCore的引用 5.向数据库添加数据 5.1 方法一,StudentsController代码如下: using System; using System.Web.Mvc; usin…
上篇我们说到了EFCore的基础使用,这篇我们将讲解下基于EFCore的扩展. 我们在Mango.Framework.EFCore类库项目中创建一个类名EFExtended的扩展类,并且引入相关的命名空间 using System; using System.Reflection; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Data.SqlClient;…
ASP.NET MVC之Session State性能问题(七)   前言 这一节翻译一篇有关Session State性能问题的文章,非一字一句翻译. 话题 不知道我们在真实环境中是否用到了Session State特性,它主要用来当在同一浏览器发出多个请求时来存储数据,在现在我们更多的为了避免整个页面刷新,Web应用程序更多倾向于利用高扩展性的Ajax,但是不知道我们是否注意到当我们使用Session数据多次请求MVC上的Action方法时产生的性能问题呢? 将Session放入上下文中(P…
前言 本篇作为EF 7.0的开篇也是Entity Framework目前系列末篇,因为关于EF 7.0学习资料实在是太少,我都是参考老外的资料花费了不少时间去研究去尝试同时也失败多次,个人觉得那是值得的,至少为今后在VS2015上来运用EF 7.0打下了坚定的基础,但是有些很深入的层面还得待EF 7.0比较成熟时再来补充及学习,当然在前面EF 6.0或6.1中系列中如果我发现又有好的内容也会进行适当补充同时也和大家一起学习以及分享.文中若有不妥之处或错处请指出.[注意]下面所演示代码都是基于VS…
前言 本篇作为EF 7.0的开篇也是Entity Framework目前系列末篇,因为关于EF 7.0学习资料实在是太少,我都是参考老外的资料花费了不少时间去研究去尝试同时也失败多次,个人觉得那是值得的,至少为今后在VS2015上来运用EF 7.0打下了坚定的基础,但是有些很深入的层面还得待EF 7.0比较成熟时再来补充及学习,当然在前面EF 6.0或6.1中系列中如果我发现又有好的内容也会进行适当补充同时也和大家一起学习以及分享.文中若有不妥之处或错处请指出.[注意]下面所演示代码都是基于VS…