Mego开发文档 - 匿名对象操作
匿名对象操作
既然普通的CLR类型可以映射到数据表,那么匿名类型也同样可以。Mego中提供了针对匿名类型操作数据表的API以方便一些临时的增删改查操作。我们在操作需要创建出一个匿名类型,这样可以通知Mego你需要操作的列。由于框架的限制,您必须要在类型中包含一个名为Id的属性作为操作的主键,同时您需要显的声明所操作的数据表名称。例如下面几个代码示例中,在创建数据集对象后,就可以像普通数据集一样执行框架中所支持的所有数据操作。
匿名对象查询
using (var db = new OrderManageEntities())
{
var item = new { Id = 0, Name = "", Code = "" };
var ds = db.Set(item, "Customers");
var data = (from a in ds
where a.Id > 20 && a.Id < 30
select a).ToArray();
}
匿名对象添加数据
using (var db = new OrderManageEntities())
{
var data = new
{
Id = 10000,
Name = "Customer 100",
Code = "C100",
Address1 = "A",
Address2 = "B",
Zip = "Z"
};
db.Set(data, "Customers").Add(data);
db.Executor.Execute();
}
匿名对象更新数据
using (var db = new OrderManageEntities())
{
var newitem = new { Id = 10, Name = "Customer 100" };
db.Set(newitem, "Customers").Update(newitem);
db.Executor.Execute();
}
匿名对象删除数据
using (var db = new OrderManageEntities())
{
db.Set(new { Id = 0 }, "OrderDetails").Remove(new { Id = 10 });
db.Executor.Execute();
}
补充:以上示例为了表示清楚直接使用了数据库表名,如果将声明的数据表名换成临时表,这样可以让匿名对象直接以ORM的形式操作临时表。
声明:一个新的技术或框架出现后还是需要时间的沉淀,我个人觉的至少需要半年以上的时间,所以请暂时不要将该框架应用到你觉的重要的系统中。不过也请大家可以多多试用,帮助Mego可以快速成长,感谢各位的问题及意见反馈。