Entity Framework 处理MySQL,Oracle 并发问题

前提, 使用的 Entity Framework Power Tools 来生成Code First 模式

环境:

EF6.0

MySQL 6.9

EF Power tools 4

VS2012

问题, SQL Server 使用 TS 字段来处理并发控制,  MySQL 如何处理 ? Oracle 如何处理?

思路:使用EF 的并发控制标识,加上数据库自动更新TS字段

1. 数据库自动更新TS, MySQL 可以设置TS列为 Timestamp 类型,加上默认值

NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Oracle 只能加一个触发器来自动更新这个TS

2. EF 在modelMap 类里面把这个TS 字段增加 IsConcurrencyToken

this.Property(t => t.TS).HasColumnName("TS").IsConcurrencyToken()

3. 设置EF Power Tools 的tt模板

让属性Name为TS的自动增加IsConcurrencyToken方法

ok,你现在更新数据的时候,使用 EFProf 查看SQL数据, 可以看到追加了个where条件为 TS=‘2015-1-8 010101‘ 的条件

时间: 2024-11-02 09:43:13

Entity Framework 处理MySQL,Oracle 并发问题的相关文章

Entity Framework连接MySQL

Entity Framework连接MySQL时:由于出现以下异常,无法生成模型:"表"TableDetails"中列"IsPrimaryKey"的值为DBNull. 解决如下 use 数据库名; set global optimizer_switch='derived_merge=OFF';  

entity framework in mysql

To start using Entity Framework 6 and Visual Studio 2013 is necessary to install MySQL for Visual Studio 1.1.1 Beta and MySQL Connector/Net 6.8.1 Beta MySQL for Visual Studio 1.1.1 Beta can be downloaded with the following link: https://cdn.mysql.com

Entity Framework with MySQL 学习笔记一(安装)

声明 :  数据库是Mysql,本人的程度只到会写sql语句(不会储蓄过程), c# 会基本的ADO.NET数据库访问,LINQ基础. 这篇只做个人学习|温习作用. 新手可以参考,也请高手指正错误, 感恩. Entity Framework (缩写EF) 是微软的一个框架.作用是处理面向对象与关系数据库的映射问题. 以往我们都是ADO.NET来访问数据库,connection.open() -> sql command ->  executenonquery | dataReader ->

Entity Framework With Mysql 之Code First

Entity Framework 4.0现在也可以支持Mysql数据库了,这篇文章将向你展示如何用Code First的方式来实现. 1.首先新建一个项目,在项目中用NuGet添加如下引用: 2.在web.config文件中添加如下配置: 1 <connectionStrings> 2 <add name="MyTestContext" connectionString="Data Source=127.0.0.1;port=3306;Initial Cat

Entity Framework 在MySQL中执行SQL语句,关于参数问题

在Entity Framework中添加MySQL模型,在写代码的过程中需要直接执行SQL语句. 在SQL语句中用到了@curRank := 0 这样在SQL语句中定义参数,同时还会有传入参数:ai.action_time >= '@startTime', 在执行的过程中会报错. 解决办法,在连接数据库字符串中添加:';Allow User Variables=True' 添加完成后如下: <add name="" connectionString="metada

entity framework 使用Mysql配置文件

<?xml version="1.0" encoding="utf-8"?> <configuration>   <configSections>     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Ver

Solve: Your project references the latest version of Entity Framework (for MySQL) in Visual Studio 2013

The error message while trying to create a ADO.net Entity Data Model ( Entity Framework 6 ) for MySql Database in Microsoft Visual Studio 2013 "Your project references the latest version of Entity Framework; however, an Entity Framework database prov

MVC5 Entity Framework学习之处理并发

之前你已经学习了如何更新数据,那么在本节你将学习如何在当多个用户在同一时间更新同一实体时处理冲突. 修改与Department实体相关的那些页面以便它们能够i处理并发错误.下面的截图是Index 和Delete页面,以及当出现并发冲突时的错误消息. 并发冲突 当一个用户对实体的数据进行编辑,然后另一个用户在前一个用户将更改写入到数据库之前更新同一实体的数据时将发生并发冲突.如果你没有启用冲突检测,那么最后一次对数据库的更新将会覆盖其他用户对数据库所做的更改.在大部分应用程序中,这种风险是可以接受

Entity Framework 使用Mysql的配置文件

<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6