随笔分类 - EntityFramework
摘要:设置主键modelBuilder.Entity<x>().HasKey(t => t.Name); 设置联合主键modelBuilder.Entity<x>().HasKey(t =>new{t.Name,t.ID} ); 取消数据库字段标识(取消自动增长)modelBuilder.Entity<x
阅读全文
摘要:源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐。可能是当时Entity Framework刚刚发布介绍EF的文章比较少。一晃这么多年过去了,EF6.1已经发布很久,EF7马上就到来。那篇文章已经显得相当过时,这期间园子里出现了很多介绍EF4/
阅读全文
摘要:当获取一个类型(class)的所有属性时,想排除指定属性,该如何操作? 比如:EF中一个实体类型UserEntity,通过反射获取这个类的属性时,想排除这个为映射的字段ID 使用以下方法即可! 参考:http://stackoverflow.com/questions/2051834/exclude
阅读全文
摘要:在一些比较重要的业务系统中,通常会要求系统跟踪数据记录的变动情况。系统要记录什么时间,什么人,对那些信息进行了变动。 比较简单的实现方式是在每个表中加入两个字段CreatedBy和CreatedAt,见图1。CreatedBy用来存是谁进行了这次更改。CreatedAt用来存什么时间进行了这次更改。
阅读全文
摘要:注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式。 推荐MiniProfiler插件 工欲善其事,必先利其器。 我们使用EF和在很大程度提高了开发速度,不过随之带来的是很多性能低下的写法和生成不太高效的sql。 虽然我们可以使用SQL Server Profiler
阅读全文
摘要:下面解释每个配置的作用 Table :用于指定生成表的表名、架构信息。 Column :用于指定生成数据表的列信息,如列名、数据类型、顺序等。 Key :用于指定任何名称的属性作为主键列并且默认将此列作为标识列(如果不想默认生成标识可以指定“DatabaseGenerated”属性的值为“None”
阅读全文
摘要:前言 一直以来写的博文都是比较温婉型的博文,今天这篇博文算是一篇批判性博文,有问题欢迎探讨,如标题,你到底会不会用EntityFramework啊。 你到底会不会用EntityFramework啊 面试过三年至六年的同行,作为过面试者到如今作为面试官也算是老大对我的信任,对来面试的面试者的任何一位同
阅读全文
摘要:环境:asp.net 4.0 + MVC 4 + Entity Framework 5异常:使用code first 碰到错误:列名 'Discriminator' 无效。这是一个很少见的错误,搜索了很久才发现是code first 的poco实体对象的继承问题。 比如,我定义了一个实体类,对应数据
阅读全文
摘要:在使用Entity Framework时,若有多个排序,需要OrderBy (OrderByDescending)再ThenBy (ThenByDescending) 假设需要根据Name升序排序,再根据Id降序排序,则: using (EFContext<Member> context = new
阅读全文
摘要:E文好的可以直接看https://github.com/loresoft/EntityFramework.Extended 也可以在nuget上直接安装这个包,它的说明有点过时了,最新版本已经改用对IQueryable<T>的扩展,而不是DbSet<T>(已经标记为弃用),所以跟我一样有隔离癖好的就
阅读全文
摘要:传统的操作数据库方式,筛选数据需要用StringBuilder拼接一大堆的WHERE子句。 在Entity Framework中,代码稍有不慎就会造成巨大性能消耗,如: using(var db=new MyDbContext()) { var s= db.Students.ToList().Fir
阅读全文
摘要:默认情况下,当EF调用SaveChanges()时,会把生成的所有SQL命令“包”到一个“事务(transaction)”中,只要有一个数据更新操作失败,整个事务将回滚。 在多数情况下,如果你总在数据更新操作代码中使用一个而不是多个DbContext对象,并且只是在最后调用一次SaveChanges
阅读全文