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}"; } }
来看结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现