
EntityFrameWork
Sammy爱学习
这个作者很懒,什么都没留下…
展开
-
EFCore3.1连接sql2008以下版本分页出问题
在.NetCore 3.1下如果在EFCore下提示Microsoft.Data.SqlClient.SqlException:“‘OFFSET’ 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。”可能是你的数据库版本太老了,对于sql2008一下的数据库,.net core3.1分页是采用的FETCH 在efcore2.1下还是支持take的方法的所以在2.1下是可以使用到了这里就不能使用了老版本数据库不支持这样的语法 OFFSET 10 ROWS FETCH NEXT 10 R原创 2021-05-26 17:34:49 · 1837 阅读 · 2 评论 -
.net core3.1 下“‘OFFSET‘ 附近有语法错误。在 FETCH 语句中选项 NEXT 的用法无效。“
在.net core下EntityFrameworkCore操作数据库有些变化由于新版的EntityFrameworkCore默认使用的是SqlServer2012或以上版本的Sql语法分页,来提高性能。//所以使用数据库的版本如果低于2012(如Sqlserver2008)需要显示的指定代码:b => b.UseRowNumberForPaging()services.AddDbContextPool<oaEntities>(b => b.UseSqlServer(Co..原创 2021-03-14 20:23:15 · 1494 阅读 · 0 评论 -
linq to entity之字符串比较
刚做到这块,有涉及到字符串比较问题。linq to entity 是不支持像sql语句中的两个字符串的比较的比如sql:select * from aaa where aa.name>'A001' and aa.name<'B001'遇到这个情况如何处理呢在写linq的时候 开始的想法就这样using (XTDBEntities edm=new XTDBEntities()){return edm.XT_Card.Where(s => s.CardNum..转载 2020-08-24 12:27:21 · 1079 阅读 · 0 评论 -
EF中CodeFirst中创建数据库的几种策略
public oaEntities() : base("name=MyStrConn") { //策略一:数据库不存在时重新创建数据库 //Database.SetInitializer<oaEntities>(new CreateDatabaseIfNotExists<oaDbContext>()); //策略二:每次启动应用程序时创建数据库 ...原创 2020-05-17 20:39:16 · 386 阅读 · 0 评论 -
EF实体类种的Virtual关键字作用
在使用EF中我们会使用导航属性,其中会加上Virtual关键字,这个有什么作用呢。加了此关键字就可以使用lazyload懒加载,不加此特性的话是加载不出此导航属性的内容的。例子,有两个实体sys_user 和 sys_dep public partial class sys_user { [Key] [StringLength(50)] public string account { get; set; } [Stri原创 2020-05-17 20:36:54 · 3503 阅读 · 1 评论 -
EF对象的几种状态
EntityFramework在使用中对象会有几种状态切换Detached:对象存在,但未由对象服务跟踪。在创建实体之后、但将其添加到对象上下文之前,该实体处于此状态;Unchanged:自对象加载到上下文中后,或自上次调用 System.Data.Objects.ObjectContext.SaveChanges() 方法后,此对象尚未经过修改;Added:对象已添加到对象上下文,但尚未调用 System.Data.Objects.ObjectContext.SaveChanges() 方法;D原创 2020-05-17 19:00:53 · 628 阅读 · 0 评论 -
关于UnitOfWork的学习我的见解
学习EF中看了网上很多关于Repository和UnitOfWork模式的教程,发现实现的方法有很多。个人任务UnitOfWork模式就是为了保证我们提交数据的完整性,起到事物的作用。其实EF本身就带这功能db.SaveChange();就可以实行了,只要我们保证同一个上下文中。只是我们单用EF来执行的时候可能会出现如下代码using(DbContext db = new DbConte...原创 2018-09-03 21:43:13 · 5128 阅读 · 0 评论 -
EF CodeFirst学习笔记3
上一篇讲到使用DataAnotations的方法来进行Model配置,还有一种方法就是Fluent Api来实现。Fluent API是另一种配置领域类的方法,它比DataAnnotations特性提供更多的配置方法,下表是Fluent API支持的类型映射。映射种类配置数据库模型(Model-wide)映射设置默认架构设置自定义约定实体(Entity)映射设置单表或多表和设置架构设置复杂类型设置...原创 2018-06-10 16:35:32 · 496 阅读 · 0 评论 -
EF CodeFirst学习笔记2
CodeFirst我们在使用的时候,会需要一些配置,通过DataAnnotation特性和Fluent Api两种方法来实现今天我们就来讲下DataAnnotation特性的使用EF Code-First提供了一个可以用在领域类或其属性上的DataAnnotation特性集合,DataAnnotation特性会覆盖默认的EF约定。DataAnnotation存在于两个命名空间里:System.Co...原创 2018-06-10 16:02:39 · 348 阅读 · 0 评论 -
EF CodeFirst学习笔记1
一直使用EF的DBFirst没使用过CodeFirst,而且CodeFirst使用的人又多,虽然麻烦点但是还是要学下的。来写个一使用的入门教程新建一个codefirst的demo,需引入EntityFramework然后简单建立一using System;using System.Collections.Generic;using System.Linq;using System.Text;...原创 2018-06-10 10:55:39 · 321 阅读 · 0 评论 -
EF中提交时更新条目时出错。有关详细信息,请参见内部异常
项目中使用EF中提交时更新条目时出错。有关详细信息,请参见内部异常 网上查到了解决方法 记录下以后方便翻阅原代码db.SaveChange();执行此代码后就报错改写成如下方法 这样就可以查到内部异常的内容了try{db.SaveChange();}catch(Exception e){throw e.InnerException;}...原创 2018-03-07 12:54:54 · 3178 阅读 · 1 评论