FreeSql基本使用
基本功扎实的同学直接转到FreeSql官方API文档:
http://www.freesql.net/reference/api.html#freesqlbuilder
也有CSXN不错的例子可以借鉴:
Nuget:
例子逻辑比较简单:
1.CodeFrist InsertMary
2.DBFrist Select DataTable
自己CV调式下就行,祝好运
static string connectionString = "Data Source=localhost;Database=test;User ID=admin;Password=admin; Allow User Variables=True;CharSet=utf8;"; static void Main(string[] args) { InitData().GetAwaiter(); var dt= DBHelperForSearchSql("select * from Person"); for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { Console.Write(dt.Columns[j].ColumnName + ":" + dt.Rows[i][dt.Columns[j].ColumnName].ToString() + " "); } Console.WriteLine(); } } /// <summary> /// 插入数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> /// <returns></returns> static async Task InitData() { using (IFreeSql db = new FreeSqlBuilder() .UseConnectionString(DataType.MySql, connectionString) .UseMonitorCommand(cmd => { Console.WriteLine("------------------执行前1-----------------"); Console.WriteLine(cmd.CommandText); Console.WriteLine("------------------执行前2-----------------"); }, (cmd, valueString) => { Console.WriteLine("------------------执行后3-----------------"); Console.WriteLine(cmd.CommandText); Console.WriteLine("------------------执行后4-----------------"); }).UseAutoSyncStructure(true).Build() ) { using (var dbContext = db.CreateDbContext()) { await dbContext.AddRangeAsync(CreateData()); dbContext.SaveChanges(); } } } static List<Person> CreateData() { return new List<Person>() { new Person(){ID=1,Name="zhangsan",Age=1,Address="北极" }, new Person(){ID=2,Name="zhangsan2",Age=1,Address="北极" }, new Person(){ID=3,Name="zhangsan3",Age=1,Address="北极" }, new Person(){ID=4,Name="zhangsan4",Age=1,Address="北极" }, new Person(){ID=5,Name="zhangsan5",Age=1,Address="北极" }, new Person(){ID=6,Name="zhangsan6",Age=1,Address="北极" } }; } /// <summary> /// 封装了类似 SqlHelper 操作: /// </summary> /// <param name="sql"></param> /// <returns></returns> static DataTable DBHelperForSearchSql(string sql) { //DBhelper using (IFreeSql db = new FreeSqlBuilder() .UseConnectionString(DataType.MySql, connectionString) .UseMonitorCommand(cmd => { Console.WriteLine("------------------执行前1-----------------"); Console.WriteLine(cmd.CommandText); Console.WriteLine("------------------执行前2-----------------"); }, (cmd, valueString) => { Console.WriteLine("------------------执行后2-----------------"); Console.WriteLine(cmd.CommandText); Console.WriteLine("------------------执行后4-----------------"); }).UseAutoSyncStructure(true).Build() ) { return db.Ado.ExecuteDataTable(sql); } } } [Table(Name = "Person")] public class Person { [Column(IsPrimary =true)] public int ID { get; set; } [Column] public string Name { get; set; } [Column] public int Age { get; set; } [Column] public string Address { get; set; } public override string ToString() { return $"ID:{ID} Name:{Name} Age:{Age} Address:{Address}"; } }
来看结果: