代码拉取完成,页面将自动刷新
同步操作将从 znyet/Dapper.Sharding 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#sharding for mysql、postgresql、sqlserver、sqlite、clickhouse、oracle
var config = new DataBaseConfig { Server = "127.0.0.1", UserId = "root", Password = "123", Port = 3306 };
//client must be singleton mode(必须是单例模式)
static IClient client = ShardingFactory.CreateClient(DataBaseType.MySql, config);
//client.AutoCreateDatabase = true;
//client.AutoCreateTable = true;
//client.AutoCompareTableColumn = false;
//client.AutoCompareTableColumnDelete = false;
var db = client.GetDatabase("test");
//var db2 = client.GetDatabase("test2"); //this will create test2 database(自由分库)
var table = db.GetTable<Student>("student"); //自由分表
table.Insert(new Student { Id = ShardingFactory.NextObjectId(), Name = "lina" });
var table2 = db.GetTable<Student>("student2");
table2.Insert(new Student { Id = ShardingFactory.NextObjectId(), Name = "lina2" });
var table3 = db.GetTable<Student>("student3");
table3.Insert(new Student { Id = ShardingFactory.NextObjectId(), Name = "lina3" });
//sharding query on all table(分片查询)
var query = new ShardingQuery(table, table2, table3);
var total = await query.CountAsync();
or
var data = await query.QueryAsync("SELECT * FROM $table"); //$table is each table name
//Transaction(分布式事务)
var tran = new DistributedTransaction();
try
{
table.Insert(new Student { Id = ShardingFactory.NextObjectId(), Name = "lina" }, tran);
table.Delete("1", tran);
table2.Delete("2", tran);
table3.Delete("3", tran);
tran.Commit();
}
catch
{
tran.Rollback();
}
namespace ConsoleApp
{
[Table("Id", false, "学生表")]
public class Student
{
[Column(24, "主键id")]
public string Id { get; set; }
[Column(50, "名字")]
public string Name { get; set; }
[Column(20, "年龄")]
public long Age { get; set; }
[Ignore]
public string NoDatabaseColumn { get; set; }
}
}
//client must singleton mode(必须是单例模式)
/*===mysql need MySqlConnector===*/
public static IClient Client = ShardingFactory.CreateClient(DataBaseType.MySql, new DataBaseConfig { Server = "127.0.0.1", UserId = "root", Password = "123", Port = 3306 })
/*===sqlite need System.Data.SQLite.Core===*/
//public static IClient Client = ShardingFactory.CreateClient(DataBaseType.Sqlite, new DataBaseConfig { Server = "D:\\DatabaseFile" })
/*===sqlserver need System.Data.SqlClient ===*/
//public static IClient Client = ShardingFactory.CreateClient(DataBaseType.SqlServer2008, new DataBaseConfig { Server = ".\\express", UserId = "sa", Password = "123456", Database_Path = "D:\\DatabaseFile" })
/*===clickhouse need ClickHouse.Ado.Dapper ===*/
//public static IClient ClientHouse = ShardingFactory.CreateClient(DataBaseType.ClickHouse, new DataBaseConfig { Server = "192.168.0.200" });
/*===postgresql need Npgsql===*/
//public static IClient Client = ShardingFactory.CreateClient(DataBaseType.Postgresql, new DataBaseConfig { Server = "127.0.0.1", UserId = "postgres", Password = "123" })
/*===oracle need Oracle.ManagedDataAccess.Core===*/
static DataBaseConfig oracleConfig = new DataBaseConfig
{
Server = "127.0.0.1",
UserId = "test",
Password = "123",
Oracle_ServiceName = "xe",
Oracle_SysUserId = "sys",
Oracle_SysPassword = "123",
Database_Path = "D:\\DatabaseFile",
Database_Size_Mb = 1,
Database_SizeGrowth_Mb = 1
};
//public static IClient Client = ShardingFactory.CreateClient(DataBaseType.Oracle, oracleConfig)
GeneratorClassFile(can create class entity file from database) //代码生成器
db.GeneratorTableFile("D:\\Class"); //生成表实体类
db.GeneratorDbContextFile("D:\\Class"); //生成请求上下文文件
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。