mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-14 12:20:57 +08:00
update
@@ -250,6 +250,10 @@ uow.OnEntityChange = report => {
|
||||
public class ChangeInfo {
|
||||
public object Object { get; set; }
|
||||
public EntityChangeType Type { get; set; }
|
||||
/// <summary>
|
||||
/// Type = Update 的时候,获取更新之前的对象
|
||||
/// </summary>
|
||||
public object BeforeObject { get; set; }
|
||||
}
|
||||
public enum EntityChangeType { Insert, Update, Delete, SqlRaw }
|
||||
```
|
||||
|
||||
71
工作单元.md
71
工作单元.md
@@ -1,14 +1,13 @@
|
||||
|
||||
UnitOfWork 可将多个仓储放在一个单元管理执行,最终通用 Commit 执行所有操作,内部采用了数据库事务;
|
||||
|
||||
```csharp
|
||||
var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" +
|
||||
"Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10";
|
||||
"Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10";
|
||||
|
||||
static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
|
||||
.UseConnectionString(FreeSql.DataType.MySql, connstr)
|
||||
.UseAutoSyncStructure(true) //自动同步实体结构到数据库
|
||||
.Build(); //请务必定义成 Singleton 单例模式
|
||||
.UseConnectionString(FreeSql.DataType.MySql, connstr)
|
||||
.UseAutoSyncStructure(true) //自动同步实体结构到数据库
|
||||
.Build(); //请务必定义成 Singleton 单例模式
|
||||
```
|
||||
|
||||
## 如何使用
|
||||
@@ -36,36 +35,36 @@ uow.GetOrBeginTransaction() 方法可获取事务对象。
|
||||
```csharp
|
||||
public interface IUnitOfWork : IDisposable {
|
||||
|
||||
DbTransaction GetOrBeginTransaction(bool isCreate = true);
|
||||
DbTransaction GetOrBeginTransaction(bool isCreate = true);
|
||||
|
||||
IsolationLevel? IsolationLevel { get; set; }
|
||||
IsolationLevel? IsolationLevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用工作单元
|
||||
/// </summary>
|
||||
bool Enable { get; }
|
||||
/// <summary>
|
||||
/// 是否启用工作单元
|
||||
/// </summary>
|
||||
bool Enable { get; }
|
||||
|
||||
void Commit();
|
||||
void Commit();
|
||||
|
||||
void Rollback();
|
||||
void Rollback();
|
||||
|
||||
/// <summary>
|
||||
/// 禁用工作单元
|
||||
/// <exception cref="Exception"></exception>
|
||||
/// <para></para>
|
||||
/// 若已开启事务(已有Insert/Update/Delete操作),调用此方法将发生异常,建议在执行逻辑前调用
|
||||
/// </summary>
|
||||
void Close();
|
||||
/// <summary>
|
||||
/// 禁用工作单元
|
||||
/// <exception cref="Exception"></exception>
|
||||
/// <para></para>
|
||||
/// 若已开启事务(已有Insert/Update/Delete操作),调用此方法将发生异常,建议在执行逻辑前调用
|
||||
/// </summary>
|
||||
void Close();
|
||||
|
||||
/// <summary>
|
||||
/// 开启工作单元
|
||||
/// </summary>
|
||||
void Open();
|
||||
/// <summary>
|
||||
/// 开启工作单元
|
||||
/// </summary>
|
||||
void Open();
|
||||
|
||||
/// <summary>
|
||||
/// 此工作单元内的实体变化跟踪
|
||||
/// </summary>
|
||||
DbContext.EntityChangeReport EntityChangeReport { get; }
|
||||
/// <summary>
|
||||
/// 此工作单元内的实体变化跟踪
|
||||
/// </summary>
|
||||
DbContext.EntityChangeReport EntityChangeReport { get; }
|
||||
}
|
||||
```
|
||||
|
||||
@@ -75,9 +74,9 @@ public interface IUnitOfWork : IDisposable {
|
||||
|
||||
```csharp
|
||||
fsql.SetDbContextOptions(opt => {
|
||||
opt.OnEntityChange = report => {
|
||||
Console.WriteLine(report);
|
||||
};
|
||||
opt.OnEntityChange = report => {
|
||||
Console.WriteLine(report);
|
||||
};
|
||||
});
|
||||
```
|
||||
|
||||
@@ -86,7 +85,7 @@ fsql.SetDbContextOptions(opt => {
|
||||
```csharp
|
||||
var uow = fsql.CreateUnitOfWork();
|
||||
uow.OnEntityChange = report => {
|
||||
Console.WriteLine(report);
|
||||
Console.WriteLine(report);
|
||||
};
|
||||
```
|
||||
|
||||
@@ -94,8 +93,12 @@ uow.OnEntityChange = report => {
|
||||
|
||||
```csharp
|
||||
public class ChangeInfo {
|
||||
public object Object { get; set; }
|
||||
public EntityChangeType Type { get; set; }
|
||||
public object Object { get; set; }
|
||||
public EntityChangeType Type { get; set; }
|
||||
/// <summary>
|
||||
/// Type = Update 的时候,获取更新之前的对象
|
||||
/// </summary>
|
||||
public object BeforeObject { get; set; }
|
||||
}
|
||||
public enum EntityChangeType { Insert, Update, Delete, SqlRaw }
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user