整理Simple.Data使用方法


官方:http://simplefx.org/simpledata/docs/index.html

Insert

var user = db.Users.Insert(Name: "Ford", Password: "hoopy", Age: 29);

var user = new User {Name = "Zaphod", Password = "zarquon", Age = 42};
var actual = db.Users.Insert(user);  

//插入id自增值方法
var db = DatabaseHelper.Open().WithOptions(new AdoOptions(identityInsert: true));
var user = db.Users.Insert(Id: 42, Name: "Arthur", Password: "Tea", Age: 30);
db.ClearOptions();

//批量插入
var users = new[]
                            {
                                new User { Name = "Slartibartfast", Password = "bistromathics", Age = 777 },
                                new User { Name = "Wowbagger", Password = "teatime", Age = int.MaxValue }
                            };
IList<User> actuals = db.Users.Insert(users).ToList<User>(); //User actual  = db.Users.Insert(users);

//动态对象
dynamic user = new ExpandoObject();
            user.Name = "Marvin";
            user.Password = "diodes";
            user.Age = 42000000;
  var actual = db.Users.Insert(user);

//异常捕捉
ErrorCallback onError = (o, exception) => passed = true;
IList<dynamic> actuals = db.Users.Insert(users,onError).ToList();

//插入图片byte[]
var inserted = db.Images.Insert(Id: 1, TheImage: image);

Update

//通过id修改
db.Users.UpdateById(Id: 1, Name: "Ford", Password: "hoopy", Age: 29);
//通过主键修改
var user = new User { Id = 2, Name = "Zaphod", Password = "zarquon", Age = 42 };
db.Users.Update(user);
//动态对象修改
dynamic user = new ExpandoObject();
user.Id = 3;
user.Name = "Marvin";
user.Password = "diodes";
user.Age = 42000000;
db.Users.Update(user);

//修改条件,指定修改列
db.Customers.UpdateAll(db.Customers.Orders.OrderId == 1, Name: "Updated");
db.test.SchemaTable.UpdateAll(db.test.SchemaTable.Id == 1138, Description: "Updated"
db.CompoundKeyMaster.UpdateAll(db.CompoundKeyMaster.CompoundKeyDetail.Value == 1, Description: "Updated");

//批量修改
List<Customer> customers = db.Customers.All().ToList<Customer>();
foreach (var customer in customers)
{
    customer.Address = "Updated";
}
db.Customers.Update(customers);

Delete

//指定Id修改
var count = db.DeleteTest.DeleteById(1);

//删除全部
var count = db.DeleteTest.DeleteAll();

//事物
var tx = db.BeginTransaction();
tx.DeleteTest.Insert(Id: 1);
var count = tx.DeleteTest.DeleteById(1);
tx.Commit();

Query

//获取总数
var count = db.Users.GetCount();

int count = db.Users.GetCount(db.Users.Age > 30);

int count = db.Users.GetCountByName("Bob");

int max = db.iNethinkCMS_Channel.Select(db.iNethinkCMS_Channel.Id.Max()).ToScalarOrDefault<int>();

//存在
db.Users.Exists();
db.Users.Exists(db.Users.Age > 30);
db.Users.Exists(db.Users.Age == -1);
db.Users.ExistsByName("Bob")

var actual = db.Users.QueryById(1).Select(db.Users.Name.As("Alias")).First();  //actual.Alias
var actual = db.Users.QueryById(1).Select(db.Users.Name).First();                    //actual.Name

//1到100中取前10个
var querys = db.PagingTest.QueryById(1.to(100)).Take(10);
//1到100中取第11个到20个
var querys = db.PagingTest.QueryById(1.to(100)).Skip(10).Take(10);
//排除1到100 ,取101到110
var querys = db.PagingTest.QueryById(1.to(100)).OrderByDescending(db.PagingTest.Id).Skip(0).Take(10);
//总数和集合 同时返回
Promise<int> count;
var list = db.PagingTest.QueryById(1.to(50))
    .Take(10)
    .WithTotalCount(out count)
    .ToList();

List<dynamic> list = db.PagingTest.QueryById(1.to(50))
    .Select(db.PagingTest.Id)
    .WithTotalCount(out count)
    .Take(10)
    .ToList();

List<dynamic> list = db.PagingTest.QueryById(1.to(50))
    .Select(db.PagingTest.Id)
    .OrderByDescending(db.PagingTest.Id)
    .WithTotalCount(out count)
    .Take(10)
    .ToList();

var list = db.PagingTest.QueryById(1.to(50))
    .WithTotalCount(out count)
    .Take(10)
    .ToList();

//查询多条件
var order = db.Customers.QueryByNameAndAddress("Test", "100 Road").Orders.FirstOrDefault();

string name = db.Customers
            .Query()
            .Select(db.Customers.Name)
            .Where(db.Customers.CustomerId == 0) // There is no CustomerId 0
            .OrderByName()
            .Take(1) // Should return only one record no matter what
            .ToScalarOrDefault<string>();

//指定Name生成List
List<string> name = db.Customers
            .Query()
            .Select(db.Customers.Name)
            .OrderByName()
            .ToScalarList<string>();
string[] name = db.Customers
            .Query()
            .Select(db.Customers.Name)
            .OrderByName()
            .ToScalarArray<string>();

优质内容筛选与推荐>>
1、UI“三重天”之selenium--封装(二)
2、HttpServlet的源码分析
3、html5上传图片
4、今天感觉到秋凉了~
5、ALV 单元格设置


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn