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);
}
声明:一个新的技术或框架出现后还是需要时间的沉淀,我个人觉的至少需要半年以上的时间,所以请暂时不要将该框架应用到你觉的重要的系统中。不过也请大家可以多多试用,帮助Mego可以快速成长,感谢各位的问题及意见反馈。