随笔分类 -  EntityFramework

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