FreeSql基本使用

基本功扎实的同学直接转到FreeSql官方API文档:

http://www.freesql.net/reference/api.html#freesqlbuilder

也有CSXN不错的例子可以借鉴:

FreeSql的使用与讲解

 

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}";
        }
    }

来看结果:

 

posted @ 2022-07-11 10:48  后跳  阅读(1072)  评论(0编辑  收藏  举报