Update demo

This commit is contained in:
sunkaixuan
2022-05-24 01:47:39 +08:00
parent 5f1e428c0b
commit d01be207a6

View File

@@ -14,59 +14,65 @@ namespace OrmTest
Console.WriteLine("");
Console.WriteLine("#### DemoM_UnitOfWork ####");
DbContext.Db.UseTran(() =>
var db = NewUnitTest.Db;
db.CurrentConnectionConfig.ConfigId = "1";
using (var uow = db.CreateContext<MyDbContext>())
{
var id = DbContext.CustomDal.InsertReturnIdentity(new Custom() { Id = 1, Name = "guid" });
var id2 = DbContext.OrderDal.InsertReturnIdentity(new Order() { Name = "guid2", Price = 0, CreateTime = DateTime.Now, CustomId = 1 });
throw new Exception("");
},
e =>
{
//throw e;
});
Console.WriteLine("");
Console.WriteLine("#### Saveable End ####");
}
public class DbContext
{
public static SqlSugarScope Db = new SqlSugarScope(new ConnectionConfig()
{
DbType = SqlSugar.DbType.SqlServer,
ConnectionString = Config.ConnectionString,
IsAutoCloseConnection = true
}, db => {
//单例参数配置,所有上下文生效
db.Aop.OnLogExecuting = (s, p) =>
{
Console.WriteLine(s);
};
});
public static DbSet<Order> OrderDal => new DbSet<Order>();
public static DbSet<Custom> CustomDal => new DbSet<Custom>();
public class DbSet<T> : SimpleClient<T> where T : class, new()
{
public DbSet(ISqlSugarClient context = null) : base(context)//需要有构造参数
{
base.Context = DbContext.Db;
}
/// <summary>
/// 扩展方法,自带方法不能满足的时候可以添加新方法
/// </summary>
/// <returns></returns>
public List<T> CommQuery(string json)
{
//base.Context.Queryable<T>().ToList();可以拿到SqlSugarClient 做复杂操作
return null;
}
var o = uow.GetRepository<ORDER>();
var o2 = uow.GetMyRepository<DbSet<ORDER>>();
var list = o.GetList();//默认仓储
var list2 = o2.CommQuery();//自定义仓储
var list3 = uow.Orders1.GetList();//MyDbContext中的默认仓储
var list4 = uow.Orders2.GetList();//MyDbContext中的自定义仓储
uow.Commit();
}
}
/// <summary>
/// 自定义DbContext
/// </summary>
public class MyDbContext : SugarUnitOfWork
{
/// <summary>
/// 原生仓储
/// </summary>
public SimpleClient<ORDER> Orders1 { get; set; }
/// <summary>
///自定义仓储
/// </summary>
public DbSet<ORDER> Orders2 { get; set; }
}
/// <summary>
/// 自定义仓储
/// </summary>
/// <typeparam name="T"></typeparam>
public class DbSet<T> : SimpleClient<T> where T : class, new()
{
/// <summary>
/// 仓储自定义方法
/// </summary>
/// <returns></returns>
public List<T> CommQuery()
{
return base.Context.Queryable<T>().ToList();
}
}
[Tenant("1")]
public class ORDER
{
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
[SugarColumn(IsNullable = true)]
public DateTime CreateTime { get; set; }
[SugarColumn(IsNullable = true)]
public int CustomId { get; set; }
[SugarColumn(IsIgnore = true)]
public List<OrderItem> Items { get; set; }
}
}
}