Mego开发文档 - 复杂保存操作

复杂保存操作

Mego框架还提供了更强大的数据更新API,以简化开发工作,同时也保证的性能。

指定属性添加数据

本列中指定插入一个数据对象,并且只会插入三列数据,最后两个属性是以表达式的形式插入。

using (var db = new OrderManageEntities())
{
    db.Customers.Add(a => new Customer()
    {
        Id = a.Id,
        Name = a.Name + "a",
        Address1 = a.Address1 + a.Address2
    }, new Customer()
    {
        Id = 10000,
        Name = "sdfdsf",
        Address1 = "a",
        Address2 = "b"
    });
    db.Executor.Execute();
}

指定属性更改数据

本例中指定更新一个数据对象的Name和Address1属性,并且Address1的值是计算出来的。

using (var db = new OrderManageEntities())
{
    var data = db.Customers.First();
    data.Address1 = "aaaa";
    data.Address2 = "bbbb";
    db.Customers.Update(a => new Customer()
    {
        Name = a.Name,
        Address1 = a.Address2 + "-" + a.Address1
    }, data);
    db.Executor.Execute();
}

条件删除数据

本例中指定删除满足Number等于1的所有Warehouse。

using (var db = new OrderManageEntities())
{
    var operate = db.Warehouses.Remove(a => a.Number == 1);
    db.Executor.Execute(operate);
}

联合添加数据

本例中将从Product对应的数据表中查询出结果并插入到Customer对应的数据表中。

using (var db = new OrderManageEntities())
{
    var operate = db.Customers.Add(from a in db.Products
                                   where a.Id > 5
                                   select new Customer()
                                   {
                                       Id = a.Id + 10000,
                                       Name = a.Name,
                                       Code = a.Name,
                                       Address1 = a.Code
                                   });
    db.Executor.Execute(operate);
}

联合更新数据

本例中将从Customer及Product中查找主键相同的数据并更新指定字段。

using (var db = new OrderManageEntities())
{
    var operate = db.Customers.Update(from b in db.Customers
                                      join a in db.Products on b.Id equals a.Id
                                      where a.Id > 100
                                      select new Customer()
                                      {
                                          Name = a.Name,
                                          Code = a.Name,
                                          Address1 = a.Code,
                                      });
    db.Executor.Execute(operate);
}

联合删除数据

using (var db = new OrderManageEntities())
{
    var operate = db.Warehouses.Remove(from a in db.Warehouses
                                       from b in db.Customers
                                       where a.Id == b.Id && a.Number > 100
                                       select a);
    db.Executor.Execute(operate);
}

[文档目录]

posted @ 2018-04-08 22:09  CarefreeXT  阅读(166)  评论(0编辑  收藏  举报