http://www.cnblogs.com/sunkaixuan/p/5911334.html

 

1、前言/Preface

SqlSugar从去年到现在已经一年了,版本从1.0升到了现在的2.8 ,这是一个稳定版本 ,有数家公司已经项目上线,在这里我将SqlSugar的功能重新整理成一篇新的贴子,希望大家喜欢。

 公司团队项目、产品已经完全抛弃EF,SqlSugar定位不是ORM,而是为了方便的让你去写Sql。

媲美原生ADO.NET的性能、简洁的语法和支持Json 、Dynamic、 List<T>、 List<string[]>、 ValueType和  Dictionary 等多种类型的返回值 有很多亮点。

 

 GitHub下载地址:

MSSQL .NET 4.0+

https://github.com/sunkaixuan/SqlSugar 

MSSQL .NET Core 版本

https://github.com/sunkaixuan/ASP_NET_CORE_ORM_SqlSugar

 Sqlite .net4.0+

https://github.com/sunkaixuan/SqliteSugar

MYSQL .NET 4.0+

http://www.cnblogs.com/sunkaixuan/p/5747259.html

ORACLE.NET 4.0+

https://github.com/sunkaixuan/OracleSugar

 ORACLE CORE ,MYSQL CORE,SQLITE  CORE 待开发

 

最新更新:

 

3.0.02

可以设置生成实体的摘要

    var temSummary = ClassTemplate.ClassFieldSummaryTemplate;

 

批量添加别名表功能

     //批量设置别名表
     //db.ClassGenerating.ForeachTables(db, tableName =>
      //{
                //    db.AddMappingTable(new KeyValue() { Key = tableName.Replace("bbs.",""), Value =  tableName }); //key实体名,value表名
     //});

 

别名列功能

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NewTest.Dao;
using System.Data.SqlClient;
using SqlSugar;
namespace NewTest.Demos
{
    //别名列的功能
    public class MappingColumns : IDemos
    {

        public void Init()
        {
            Console.WriteLine("启动MappingColumns.Init");

            //全局设置
            using (var db = SugarFactory.GetInstance())
            {
                var list = db.Queryable<Student>().Where(it=>it.classId==1).ToList();
            }
        }

        public class Student
        {

            //id
            public int classId { get; set; }

            //name
            public string className { get; set; }

            //sch_id
            public int classSchoolId { get; set; }

            public int isOk { get; set; }
        }

        /// <summary>
        /// 全局配置别名列(不区分表)
        /// </summary>
        public class SugarConfigs
        {
            //key实体字段名 value表字段名 ,KEY唯一否则异常
            public static List<KeyValue> MpList = new List<KeyValue>(){
            new KeyValue(){ Key="classId", Value="id"},
            new KeyValue(){ Key="className", Value="name"},
            new KeyValue(){ Key="classSchoolId", Value="sch_id"}
            };
        }

        /// <summary>
        /// SqlSugar实例工厂
        /// </summary>
        public class SugarFactory
        {

            //禁止实例化
            private SugarFactory()
            {

            }
            public static SqlSugarClient GetInstance()
            {
                string connection = SugarDao.ConnectionString; //这里可以动态根据cookies或session实现多库切换
                var db = new SqlSugarClient(connection);
                //注意:只有启动属性映射才可以使用SetMappingColumns
                db.IsEnableAttributeMapping = true;
                db.SetMappingColumns(SugarConfigs.MpList);//设置关联列 (引用地址赋值,每次赋值都只是存储一个内存地址)
                return db;
            }
        }
    }
}
View Code

相关文章: