Exemplo n.º 1
0
        public static IServiceCollection AddWangSqlSqlite(this IServiceCollection services, DbProviderOptions option)
        {
            SqliteProviderManager.Set(option);

            services.AddScoped <ISqlMapper, SqlMapper>();
            services.AddScoped <ISqlExe, SqlMapper>();

            return(services);
        }
Exemplo n.º 2
0
        public static void Test()
        {
            EntityUtil.SetMaps(new Type[] { typeof(Models.User), typeof(Models.Order) }, "sqlite_test");
            SqliteProviderManager.Init("sqlite_test", "Data Source=wangsql.db;", false, true);

            var session    = new SqlMapper();
            var sqlBuilder = new SqlBuilder();

            var user = new User()
            {
                Id         = Guid.NewGuid().ToString(),
                CreateTime = DateTime.Now,
                NickName   = "dapper",
            };
            var order = new Order()
            {
                Id        = Guid.NewGuid().ToString(),
                UserId    = user.Id,
                OrderName = "asasa"
            };

            var r01 = session.From <User>().Insert(user).SaveChanges();
            var r02 = session.From <Order>().Insert(order).SaveChanges();
            var r1  = session.From <User>().ToList();

            user = new User()
            {
                Id = user.Id, NickName = "李四"
            };                                                  //更新所有字段(where id=2),支持批量,显然除NickName之外将被更新成null
            var r2 = session.From <User>().Update(user).SaveChanges();

            //更新部分字段
            var r3 = session.From <User>()
                     .Update(user)
                     .Set(a => a.NickName, "李四")                //condition为true时更新该字段
                     .Set(a => a.Balance, a => a.Balance + 100) //余额在原来基础增加100
                     .Where(a => a.Id.In(user.Id, "2", "3"))    //将id为1,2,3的记录进行更新
                     .SaveChanges();

            var r4 = session.From <User>().ToList();

            //
            string userId = "a";
            var    r5     = session.From <Order, User>()
                            .Join((a, b) => a.UserId == b.Id, JoinType.Inner)
                            .Select((a, b) => new
            {
                a.UserId,
                b.NickName,
                a.OrderName
            })
                            .Where((a, b) => a.UserId == user.Id || a.UserId == userId)
                            .ToList <Dictionary <string, object> >();
        }