ef

EF+LINQ事物处理

匿名 (未验证) 提交于 2019-12-02 22:06:11
在使用EF的情况下,可能也会存在说我有多个站点,同时去访问一个数据库,操作同一条数据的同一个值,那么我们怎么来进行事物的处理呢 有这么一个很好的解决方式 EF6里面提供了这么一个方式来处理事物 Database.BeginTransaction() : 为用户提供一种简单易用的方案,在dbEntitys 中启动并完成一个事务 -- 合并一系列操作到该事务中。同时使用户更方便的指定事务隔离级别。 Database.UseTransaction() : 允许DbContext使用一个EF框架外的事务。 using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.SqlClient; using System.Linq; using System.Transactions; namespace TransactionsExamples { class TransactionsExample { static void StartOwnTransactionWithinContext() { using (var db= new dbEntitys()) { using (var dbContextTransaction = db.Database

.NetCore教程之 EFCore连接Mysql DBFirst模式

匿名 (未验证) 提交于 2019-12-02 22:06:11
一: 例如: 二: 生成数据库的实体和EF的DBcontext对象,用到的是 Scaffold-DBcontext命令 三: 创建标准的web应用,进行使用 SslModel=none 例如 public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); //ef mysql 配置 services.AddDbContext<drewtestContext>(options => options.UseMySql(Configuration.GetConnectionString("MySqlConnection"))); services.AddMvc().SetCompatibilityVersion

EF core Code First 一些小结

匿名 (未验证) 提交于 2019-12-02 22:06:11
EF core 就是字面上的意思咯,EF 就是.Net上用的很多的ORM框架,core呢,就是在.Net core 上使用的EF咯。 为什么要使用EF框架呢,因为原始的ADO.NET需要编写大量的数据访问代码,所以使用EF会更方便。 但是今天 只讲Code First,Code First非常好用。但是表都需要自己写代码去建立,不能可 视化建立,提醒大家还是需要 ϰ 惯不可视化操作为好。 首先是怎么使用EF core呢,需要去安装Nuget包,我使用的是MySQL数据库,所以安装的是Pomelo.EntityFrameworkCore.MySql 可以在Nuget 包管理器里搜索安装, 这里有个大问题就是Pomelo.EntityFrameworkCore.MySql这个包版本不兼容的问题,如果你的.Net core版本是2.1,那么请安装2.1.0版本,因为2.1.1会报错。 如果没有2.1.0版本,那么久安装最新的,然后在csproj里面修改版本就可以了,如图: 安装完之后就可以使用了。 还需要配置的就是在Startup类上,配置DbContext,还有连接字符串在AppSetting.json中 ORM,对象关系映射,通俗点讲就是将实体的属性和字段联系起来。 下图就是一个类,包含了很多属性。 那么如何将它们联系起来呢。 首先你需要建立一个上下文类,也就是DbContext

EF中获取当前上下文的表名

两盒软妹~` 提交于 2019-12-02 02:14:54
EF在处理并发上并不是很好,很多时候我们需要手动写sql操作数据库。但是在基类中我们如何获取当前服务上下问操作的表呢? 使用正则是其中一种解决办法 var sql= Repository.Table.ToString(); var regex = new Regex("FROM (?<table>.*) AS"); var match = regex.Match(sql); string table = match.Groups["table"].Value; 其中sql= SELECT "Extent1"."uuid", "Extent1"."imageid", "Extent1"."description", "Extent1"."order", "Extent1"."tags", "Extent1"."isdefault", "Extent1"."billid", "Extent1"."filename", "Extent1"."fileext", "Extent1"."filesize", "Extent1"."storepath", "Extent1"."storename", "Extent1"."createby", "Extent1"."createon", "Extent1"."updateby", "Extent1"."updateon" FROM "dbo".

VS2019 Nuget找不到包的问题处理

烈酒焚心 提交于 2019-12-01 23:50:19
  VS不记得改了什么设置之后,发现找不到EF 解决办法 1、点击右侧的设置按钮 2、弹出窗中左侧树形结构选择“程序包源”,再点击右上方的添加按钮 输入一下信息:https://www.nuget.org/api/v2/ 然后点击更新,确定按钮。 再次搜索就可找到EF安装包。 来源: https://www.cnblogs.com/alannxu/p/11721916.html

编程日记

淺唱寂寞╮ 提交于 2019-12-01 23:28:28
C .NET 文档 | Microsoft Docs .NET 源码 The Visual Studio Blog 【译】.NET中六个重要的概念:栈、堆、值类型、引用类型、装箱和拆箱 .NET中那些所谓的新语法之一:自动属性、隐式类型、命名参数与自动初始化器 .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法 .NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式 .NET中那些所谓的新语法之四:标准查询运算符与LINQ .NET基础拾遗(1)类型语法基础和内存管理基础 .NET基础拾遗(2)面向对象的实现和异常的处理基础 .NET基础拾遗(3)字符串、集合和流 .NET基础拾遗(4)委托、事件、反射与特性 .NET基础拾遗(5)多线程开发基础 .NET基础拾遗(6)ADO.NET与数据库开发基础 .NET基础拾遗(7)Web Service的开发与应用基础 数据结构,你还记得吗(上) 数据结构,你还记得吗(中) 数据结构,你还记得吗(下) C#规范整理·语言要素 C#规范整理·集合和Linq C#规范整理·异常与自定义异常 C#规范整理·泛型委托事件 C#规范整理·资源管理和序列化 C#规范整理·多线程\异步\并行\任务 C#基础(204)--对象初始化器,基本数据类型与引用数据类型特点总结,ref,out关键字的使用 撸·委托 撸·反射 Create a

Net笔记-EF/Dapper/ORM

烈酒焚心 提交于 2019-12-01 15:31:53
个人备查笔记 Q:EF DateTime 默认值多数据兼容问题: mysql:NOW()或sysdate() Sql Server: GetDate() EF兼容使用 ANSI SQL: builder.Property(x => x.UpdatedOn).HasDefaultValueSql("CURRENT_TIMESTAMP"); Q:EF/Linq语句转Raw SQL: 代码转载备查 转载 来源: https://stackoverflow.com/questions/37527783/get-sql-code-from-an-entity-framework-core-iqueryablet EF Core 2.x: public static class QueryableExtensions { private static readonly TypeInfo QueryCompilerTypeInfo = typeof(QueryCompiler).GetTypeInfo(); private static readonly FieldInfo QueryCompilerField = typeof(EntityQueryProvider).GetTypeInfo().DeclaredFields.First(x => x.Name == "

EF core的原生SQL查询以及用EF core进行分页查询遇到的问题

。_饼干妹妹 提交于 2019-12-01 12:36:37
在用.net core进行数据库访问,需要处理一些比较复杂的查询,就不得不用原生的SQL查询了,然而EF Core 和EF6 的原生sql查询存在很大的差异。 在EF6中我们用SqlQuery和ExecuteSqlCommand进行sql语句的执行,而在EF Core中我们则使用FromSql和ExecuteSqlCommand 一.ExecuteSqlCommand(这两者没什么太大的区别)        Company08Entities db = new Company08Entities();        string sql = string.Format("update Cars set IsPub='是',PubTime='{1}' where Id in ({0})",ids,DateTime.Now); int res = db.Database.ExecuteSqlCommand(sql); //返回受影响的行数 if (res>0) { return Json(new UIResult(true,"发布成功!")); } else { return Json(new UIResult(false,"发布失败,请重试!")); } 二.数据库查询语句两者的差别就太大了,这里我会详细举例说明    1

ef core实现软删除

流过昼夜 提交于 2019-12-01 07:51:45
很多web程序一般的偶不会设计真的物理删除了。 基本上都是在在数据库加一个标记,就得当作已经删除了。同时在查询的时候,过滤已经标记删除的数据 ef core实现软删除是非常简单的,直接在OnModelCreating动态创建一个IsDeleted字段,bool类型。然后扔到ef core的查询过滤器里面去。 protected override void OnModelCreating(ModelBuilder modelBuilder) { foreach (var entityType in modelBuilder.Model.GetEntityTypes()) { entityType.GetOrAddProperty("IsDeleted", typeof(bool)); var parameter = Expression.Parameter(entityType.ClrType); var propertyMethodInfo = typeof(EF).GetMethod("Property").MakeGenericMethod(typeof(bool)); var isDeletedProperty = Expression.Call(propertyMethodInfo, parameter, Expression.Constant("IsDeleted"));