Update Access

This commit is contained in:
sunkaixuan 2022-02-21 01:03:03 +08:00
parent f66d76c4b5
commit df1fa0581f
9 changed files with 181 additions and 212 deletions

View File

@ -13,15 +13,15 @@ namespace OrmTest
public static void Init()
{
EasyExamples();
QueryConditions();
//QueryConditions();
JoinTable();
Async();
NoEntity();
Mapper();
SqlFuncTest();
Subquery();
ReturnType();
ConfiQuery();
//Async();
//NoEntity();
//Mapper();
//SqlFuncTest();
//Subquery();
//ReturnType();
//ConfiQuery();
}
private static void ConfiQuery()
@ -137,43 +137,43 @@ namespace OrmTest
int c = 0;
var test10 = db.Queryable<Order>().ToPageList(1, 2, ref c);
var test11 = db.Queryable<Order>().GroupBy(it=>new { it.CreateTime.Year }).Select(it=>it.CreateTime.Year).ToList();
var test12 = db.Queryable<Order>().GroupBy(it => it.CreateTime.Date ).Select(it => it.CreateTime.Date).ToList();
var test13 = db.Queryable<Order>().GroupBy(it => new { it.CreateTime.Date ,it.CreateTime.Year,it.CreateTime.Minute })
.Select(it => new { it.CreateTime.Date, it.CreateTime.Year, it.CreateTime.Minute }).ToList();
var test14 = db.Queryable<Order>()
.GroupBy(it => it.CreateTime.Year )
.GroupBy(it => it.CreateTime.Second)
.GroupBy(it => it.CreateTime.Date)
.Select(it => new {
it.CreateTime.Year,
it.CreateTime.Second,
it.CreateTime.Date
}).ToList();
// var test12 = db.Queryable<Order>().GroupBy(it => it.CreateTime.Date ).Select(it => it.CreateTime.Date).ToList();
//var test13 = db.Queryable<Order>().GroupBy(it => new { it.CreateTime.Date ,it.CreateTime.Year,it.CreateTime.Minute })
// .Select(it => new { it.CreateTime.Date, it.CreateTime.Year, it.CreateTime.Minute }).ToList();
//var test14 = db.Queryable<Order>()
// .GroupBy(it => it.CreateTime.Year )
// .GroupBy(it => it.CreateTime.Second)
// .GroupBy(it => it.CreateTime.Date)
// .Select(it => new {
// it.CreateTime.Year,
// it.CreateTime.Second,
// it.CreateTime.Date
// }).ToList();
var test15 = db.Queryable<Order, Order>((o, i) => new JoinQueryInfos(
JoinType.Left, o.Name == SqlFunc.ToString(SqlFunc.MergeString(",", i.Name, ","))
))
.Select<ViewOrder>().ToList();
// var test16 = db.Queryable<Order>().Select(it => SqlFunc.SqlServer_DateDiff("day", DateTime.Now.AddDays(-1), DateTime.Now)).ToList();
var test17 =
db.Queryable<Order>()
.Select<Order>()
.MergeTable()
.Select(it => new ViewOrder()
{
Name = SqlFunc.Subqueryable<Order>().Select(s => s.Name)
}).ToList(); ;
var test18 = db.UnionAll(
db.Queryable<Order>() ,
db.Queryable<Order>()
)
.Select(it=>new ViewOrder(){
Name=SqlFunc.Subqueryable<Order>().Select(s=>s.Name)
}).ToList();
//var test17 =
// db.Queryable<Order>()
// .Select<Order>()
// .MergeTable()
// .Select(it => new ViewOrder()
// {
// Name = SqlFunc.Subqueryable<Order>().Select(s => s.Name)
// }).ToList(); ;
//var test18 = db.UnionAll(
// db.Queryable<Order>() ,
// db.Queryable<Order>()
// )
// .Select(it=>new ViewOrder(){
// Name=SqlFunc.Subqueryable<Order>().Select(s=>s.Name)
// }).ToList();
var test19 = db.Queryable<Order>().Select<ViewOrder>().ToList();
var test20 = db.Queryable<Order>().LeftJoin<Custom>((o, cs) =>o.Id==cs.Id)
.ToDictionary(it => it.Id, it => it.Name);
var test21 = db.Queryable<Order>().Where(it=>it.Id.ToString()==1.ToString()).Select(it => it.CreateTime.ToString("24")).First();
//var test21 = db.Queryable<Order>().Where(it=>it.Id.ToString()==1.ToString()).Select(it => it.CreateTime.ToString("24")).First();
Console.WriteLine("#### Examples End ####");
}
@ -397,12 +397,12 @@ namespace OrmTest
.Select<ViewOrder>()
.ToList();
//Join table
var list2 = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
JoinType.Left, o.Id == i.OrderId,
JoinType.Left, c.Id == o.CustomId
))
.Select<ViewOrder>().ToList();
// //Join table
// var list2 = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
// JoinType.Left, o.Id == i.OrderId,
// JoinType.Left, c.Id == o.CustomId
// ))
//.Select<ViewOrder>().ToList();
//Join queryable
var query1 = db.Queryable<Order, OrderItem>((o, i) => new JoinQueryInfos(
@ -421,36 +421,36 @@ namespace OrmTest
var query4 = db.Queryable<Order,OrderItem,Custom>(
db.Queryable<Order>().Where(it => it.Name.Contains("a")),
db.Queryable<OrderItem>().Where(it => it.CreateTime>DateTime.Now),
db.Queryable<Custom>().Where(it => it.Name.Contains("b")),
JoinType.Left, (o, i, c) => o.Id==i.OrderId,
JoinType.Left,(o,i,c)=>o.CustomId==c.Id
//var query4 = db.Queryable<Order,OrderItem,Custom>(
// db.Queryable<Order>().Where(it => it.Name.Contains("a")),
// db.Queryable<OrderItem>().Where(it => it.CreateTime>DateTime.Now),
// db.Queryable<Custom>().Where(it => it.Name.Contains("b")),
// JoinType.Left, (o, i, c) => o.Id==i.OrderId,
// JoinType.Left,(o,i,c)=>o.CustomId==c.Id
).Select(o=>o).ToList();
// ).Select(o=>o).ToList();
var query5 = db.Queryable<Order>()
.InnerJoin<Custom>((o, cus) => o.CustomId == cus.Id)
.InnerJoin<OrderItem>((o, cus, oritem) => o.Id == oritem.OrderId)
.Where((o) => o.Id == 1)
.Select((o, cus) => new ViewOrder { Id=o.Id, CustomName = cus.Name })
.ToList();
//var query5 = db.Queryable<Order>()
// .InnerJoin<Custom>((o, cus) => o.CustomId == cus.Id)
// .InnerJoin<OrderItem>((o, cus, oritem) => o.Id == oritem.OrderId)
// .Where((o) => o.Id == 1)
// .Select((o, cus) => new ViewOrder { Id=o.Id, CustomName = cus.Name })
// .ToList();
var query6 = db.Queryable(db.Queryable<Order>()).LeftJoin<OrderItem>((m, i) => m.Id == i.OrderId)
.ToList();
//var query6 = db.Queryable(db.Queryable<Order>()).LeftJoin<OrderItem>((m, i) => m.Id == i.OrderId)
// .ToList();
var query7 = db.Queryable(db.Queryable<Order>().Select<Order>().MergeTable()).LeftJoin<OrderItem>((m, i) => m.Id == i.OrderId)
.ToList();
//var query7 = db.Queryable(db.Queryable<Order>().Select<Order>().MergeTable()).LeftJoin<OrderItem>((m, i) => m.Id == i.OrderId)
// .ToList();
var query8 = db.Queryable<Order>()
.LeftJoin(db.Queryable<Custom>().Where(it=>it.Id==1),(o,i)=>o.CustomId==i.Id)
.LeftJoin(db.Queryable<OrderItem>().Where(it=>it.OrderId==2),(o,i,item)=>item.OrderId==o.Id)
.LeftJoin(db.Queryable<Order>().Where(it => it.Id >0), (o, i, item, od) => od.Id == o.Id)
.Select(o => o).ToList();
//var query8 = db.Queryable<Order>()
// .LeftJoin(db.Queryable<Custom>().Where(it=>it.Id==1),(o,i)=>o.CustomId==i.Id)
// .LeftJoin(db.Queryable<OrderItem>().Where(it=>it.OrderId==2),(o,i,item)=>item.OrderId==o.Id)
// .LeftJoin(db.Queryable<Order>().Where(it => it.Id >0), (o, i, item, od) => od.Id == o.Id)
// .Select(o => o).ToList();
Console.WriteLine("#### Join Table End ####");
}

View File

@ -35,14 +35,14 @@ namespace OrmTest
/*** 1.entity or List ***/
var updateObj = new Order() { Id = 1, Name = "order1" };
var updateObjs = new List<Order> {
new Order() { Id = 11, Name = "order11" },
new Order() { Id = 12, Name = "order12" }
};
//var updateObjs = new List<Order> {
// new Order() { Id = 11, Name = "order11" },
// new Order() { Id = 12, Name = "order12" }
//};
//update all columns by primary key
var result = db.Updateable(updateObj).ExecuteCommand();//update single
var result2 = db.Updateable(updateObjs).ExecuteCommand();//update List<Class>
//var result2 = db.Updateable(updateObjs).ExecuteCommand();//update List<Class>
//Ignore Name and Price
var result3 = db.Updateable(updateObj).IgnoreColumns(it => new { it.CreateTime, it.Price }).ExecuteCommand();
@ -52,10 +52,10 @@ namespace OrmTest
//If there is no primary key
var result5 = db.Updateable(updateObj).WhereColumns(it => new { it.Id }).ExecuteCommand();//update single by id
var result6 = db.Updateable(updateObjs).WhereColumns(it => new { it.Id }).ExecuteCommand();//update List<Class> by id
//var result6 = db.Updateable(updateObjs).WhereColumns(it => new { it.Id }).ExecuteCommand();//update List<Class> by id
//Re set value
var result66 = db.Updateable(new List<Order> { updateObj }).ReSetValue(it => it.Id = 112).IgnoreColumns(it => new { it.CreateTime, it.Price }).ExecuteCommand();
//var result66 = db.Updateable(new List<Order> { updateObj }).ReSetValue(it => it.Id = 112).IgnoreColumns(it => new { it.CreateTime, it.Price }).ExecuteCommand();
@ -81,7 +81,7 @@ namespace OrmTest
dtList.Add(dt);
var t66 = db.Updateable(dt).AS("[Order]").WhereColumns("id").ExecuteCommand();
var t666 = db.Updateable(dtList).AS("[Order]").WhereColumns("id").ExecuteCommand();
// var t666 = db.Updateable(dtList).AS("[Order]").WhereColumns("id").ExecuteCommand();
@ -109,8 +109,8 @@ namespace OrmTest
.AddQueue();
db.SaveQueues();
var dataTable = db.Queryable<Order>().Select("id,name,1 as price").Take(2).ToDataTable();
db.Fastest<Order>().BulkUpdate("Order", dataTable,new string[] {"id" },new string[] {"name" });
//var dataTable = db.Queryable<Order>().Select("id,name,1 as price").Take(2).ToDataTable();
//db.Fastest<Order>().BulkUpdate("Order", dataTable,new string[] {"id" },new string[] {"name" });
Console.WriteLine("#### Updateable End ####");
}

View File

@ -31,12 +31,12 @@ namespace OrmTest
});
var insertObj = new Order() { Id = 1, Name = "order1", Price = 0 };
var insertObjs = new List<Order> {
new Order() { Id = 11, Name = "XX", Price=0 },
new Order() { Id = 12, Name = "XX2" , Price=0}
};
//var insertObjs = new List<Order> {
// new Order() { Id = 11, Name = "XX", Price=0 },
// new Order() { Id = 12, Name = "XX2" , Price=0}
//};
var x=db.Insertable(insertObjs).RemoveDataCache().IgnoreColumns(it=>it.CreateTime).UseParameter().ExecuteCommand();
//var x=db.Insertable(insertObjs).RemoveDataCache().IgnoreColumns(it=>it.CreateTime).UseParameter().ExecuteCommand();
//Ignore CreateTime
db.Insertable(insertObj).IgnoreColumns(it => new { it.CreateTime }).ExecuteReturnIdentity();//get identity
@ -47,108 +47,108 @@ namespace OrmTest
db.Insertable(insertObj).InsertColumns("Name", "Price").ExecuteReturnIdentity();
//ignore null columns
db.Insertable(insertObjs).ExecuteCommand();//get change row count
// db.Insertable(insertObjs).ExecuteCommand();//get change row count
//Use Lock
db.Insertable(insertObj).With(SqlWith.UpdLock).ExecuteCommand();
insertObjs = new List<Order> {
new Order() { Id = 11, Name = "order11", Price=1 },
new Order() { Id = 12, Name = "order12" , Price=20, CreateTime=DateTime.Now, CustomId=1}
};
db.Insertable(insertObjs).UseSqlServer().ExecuteBulkCopy();
//insertObjs = new List<Order> {
// new Order() { Id = 11, Name = "order11", Price=1 },
// new Order() { Id = 12, Name = "order12" , Price=20, CreateTime=DateTime.Now, CustomId=1}
//};
//db.Insertable(insertObjs).UseSqlServer().ExecuteBulkCopy();
var dt = db.Queryable<Order>().Take(5).ToDataTable();
dt.TableName = "Order";
db.Insertable(dt).UseSqlServer().ExecuteBulkCopy();
db.CodeFirst.InitTables<RootTable0, TwoItem, TwoItem2, TwoItem3>();
db.CodeFirst.InitTables<ThreeItem2>();
db.DbMaintenance.TruncateTable("RootTable0");
db.DbMaintenance.TruncateTable("TwoItem");
db.DbMaintenance.TruncateTable("TwoItem2");
db.DbMaintenance.TruncateTable("TwoItem3");
db.DbMaintenance.TruncateTable("ThreeItem2");
Console.WriteLine("SubInsert Start");
//db.Insertable(dt).UseSqlServer().ExecuteBulkCopy();
// db.CodeFirst.InitTables<RootTable0, TwoItem, TwoItem2, TwoItem3>();
// db.CodeFirst.InitTables<ThreeItem2>();
// db.DbMaintenance.TruncateTable("RootTable0");
// db.DbMaintenance.TruncateTable("TwoItem");
// db.DbMaintenance.TruncateTable("TwoItem2");
// db.DbMaintenance.TruncateTable("TwoItem3");
// db.DbMaintenance.TruncateTable("ThreeItem2");
// Console.WriteLine("SubInsert Start");
db.Insertable(new Order()
{
Name = "订单 1",
CustomId = 1,
Price = 100,
CreateTime = DateTime.Now,
Id = 0,
Items = new List<OrderItem>() {
new OrderItem(){
CreateTime=DateTime.Now,
OrderId=0,
Price=1,
ItemId=1
},
new OrderItem(){
CreateTime=DateTime.Now,
OrderId=0,
Price=2,
ItemId=2
}
}
})
.AddSubList(it => it.Items.First().OrderId).ExecuteCommand();
// db.Insertable(new Order()
// {
// Name = "订单 1",
// CustomId = 1,
// Price = 100,
// CreateTime = DateTime.Now,
// Id = 0,
// Items = new List<OrderItem>() {
// new OrderItem(){
// CreateTime=DateTime.Now,
// OrderId=0,
// Price=1,
// ItemId=1
// },
// new OrderItem(){
// CreateTime=DateTime.Now,
// OrderId=0,
// Price=2,
// ItemId=2
// }
// }
// })
// .AddSubList(it => it.Items.First().OrderId).ExecuteCommand();
db.Insertable(new List<RootTable0>() {
new RootTable0()
{
Name="aa",
TwoItem2=new TwoItem2() {
Id="1",
ThreeItem2=new List<ThreeItem2>(){
new ThreeItem2(){ Name="a", TwoItem2Id="1" },
new ThreeItem2(){ Id=2, Name="a2", TwoItem2Id="2" }
}
},
TwoItem=new TwoItem()
{
Name ="itema" ,
RootId=2
},
TwoItem3=new List<TwoItem3>(){
new TwoItem3(){ Id=0, Name="a",Desc="" },
// db.Insertable(new List<RootTable0>() {
// new RootTable0()
// {
// Name="aa",
// TwoItem2=new TwoItem2() {
// Id="1",
// ThreeItem2=new List<ThreeItem2>(){
// new ThreeItem2(){ Name="a", TwoItem2Id="1" },
// new ThreeItem2(){ Id=2, Name="a2", TwoItem2Id="2" }
// }
// },
// TwoItem=new TwoItem()
// {
// Name ="itema" ,
// RootId=2
// },
// TwoItem3=new List<TwoItem3>(){
// new TwoItem3(){ Id=0, Name="a",Desc="" },
}
},
new RootTable0()
{
Name="bb",
TwoItem2=new TwoItem2() {
Id="2"
},
TwoItem=new TwoItem()
{
Name ="itemb" ,
RootId=2,
// }
// },
// new RootTable0()
// {
// Name="bb",
// TwoItem2=new TwoItem2() {
// Id="2"
// },
// TwoItem=new TwoItem()
// {
// Name ="itemb" ,
// RootId=2,
},
TwoItem3=new List<TwoItem3>(){
new TwoItem3(){ Id=1, Name="b",Desc="" },
new TwoItem3(){ Id=2, Name="b1",Desc="1" },
}
}
})
.AddSubList(it => it.TwoItem.RootId)
.AddSubList(it => new SubInsertTree()
{
Expression = it.TwoItem2.RootId,
ChildExpression = new List<SubInsertTree>() {
new SubInsertTree(){
Expression=it.TwoItem2.ThreeItem2.First().TwoItem2Id
}
}
})
.AddSubList(it => it.TwoItem3)
.ExecuteCommand();
// },
// TwoItem3=new List<TwoItem3>(){
// new TwoItem3(){ Id=1, Name="b",Desc="" },
// new TwoItem3(){ Id=2, Name="b1",Desc="1" },
// }
// }
// })
//.AddSubList(it => it.TwoItem.RootId)
//.AddSubList(it => new SubInsertTree()
//{
// Expression = it.TwoItem2.RootId,
// ChildExpression = new List<SubInsertTree>() {
// new SubInsertTree(){
// Expression=it.TwoItem2.ThreeItem2.First().TwoItem2Id
// }
// }
//})
//.AddSubList(it => it.TwoItem3)
//.ExecuteCommand();
SubNoIdentity(db);
SubIdentity(db);
// SubNoIdentity(db);
// SubIdentity(db);
var dict = new Dictionary<string, object>();
@ -158,11 +158,11 @@ namespace OrmTest
db.Insertable(dict).AS("[Order]").ExecuteCommand();
db.Fastest<Order>().BulkCopy(insertObjs);
//db.Fastest<Order>().BulkCopy(insertObjs);
var dataTable= db.Queryable<Order>().Select("id,name,Price").Take(2).ToDataTable();
int result= db.Fastest<Order>().BulkCopy("order", dataTable);
//var dataTable= db.Queryable<Order>().Select("id,name,Price").Take(2).ToDataTable();
//int result= db.Fastest<Order>().BulkCopy("order", dataTable);
Console.WriteLine("#### Insertable End ####");
}

View File

@ -39,35 +39,14 @@ namespace OrmTest
var dt2 = db.Ado.GetDataTable("select * from [order] where @id>0 or name=@name", new { id = 1, name = "2" });
//create sp
db.Ado.ExecuteCommand(@"
if object_id('up_user') is not null
drop proc up_user;");
db.Ado.ExecuteCommand(@"
create proc up_user
@id int,
@name varchar(10) ='' output
as
begin
set @name='abc'
select @id as id
end
");
//get output
var dt3 = db.Ado.UseStoredProcedure().GetDataTable("up_user", new { name = "张三", id = 0 });
var IdP = new SugarParameter("@id", 1);
var NameP = new SugarParameter("@name", null, true);//isOutput=true
var dt4 = db.Ado.UseStoredProcedure().GetDataTable("up_user", IdP, NameP);
var outputValue = NameP.Value;
//There are many methods to under db.ado
var list = db.Ado.SqlQuery<Order>("select * from [order] ");
var list2 = db.Ado.SqlQuery<Order, Order>("select * from [order] where 1=2;select * from [order] ");
var list3 = db.Ado.SqlQuery<int>(" delete from [order] where 2=15 ");
var intValue = db.Ado.SqlQuerySingle<int>("select 1");
db.Ado.ExecuteCommand("delete [order] where id>1000");
db.Ado.ExecuteCommand("delete from [order] where id>1000");
db.SqlQueryable<Custom>(@"select *
from custom").ToList();

View File

@ -19,24 +19,8 @@ namespace OrmTest
Demo3_Insertable.Init();
Demo4_Deleteable.Init();
Demo5_SqlQueryable.Init();
DemoN_SplitTable.Init();
Demo6_Queue.Init();
Demo7_Ado.Init();
Demo8_Saveable.Init();
Demo9_EntityMain.Init();
DemoA_DbMain.Init();
DemoB_Aop.Init();
DemoC_GobalFilter.Init();
DemoD_DbFirst.Init();;
DemoE_CodeFirst.Init();
DemoF_Utilities.Init();
DemoG_SimpleClient.Init();
DemoH_Tenant.Init();
DemoJ_Report.Init();
DemoL_Snowflake.Init();
DemoM_UnitOfWork.Init();
;
//DemoD_DbFirst.Init();
Console.WriteLine("all successfully.");
Console.ReadKey();
}

Binary file not shown.

Binary file not shown.

View File

@ -318,6 +318,7 @@ namespace SqlSugar.Access
}
public override List<DbTableInfo> GetTableInfoList(bool isCache = true)
{
// (this.Context.Ado.Connection as OleDbConnection).Open();
var table = (this.Context.Ado.Connection as OleDbConnection).GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "Table" });
var result= table
.Rows.Cast<DataRow>().Select(it=>new DbTableInfo

View File

@ -8,5 +8,10 @@ namespace SqlSugar.Access
{
public class AccessUpdateBuilder : UpdateBuilder
{
protected override string TomultipleSqlString(List<IGrouping<int, DbColumnInfo>> groupList)
{
throw new Exception("access no support batch update");
}
}
}