复杂保存操作

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开发文档 - 复杂保存操作的更多相关文章

  1. Mego开发文档 - 基本保存操作

    基本保存操作 在Mego中没有更改跟踪,也就是说所有的新增.更新及删除都需要开发者自行判断.Mego会最为实际的将各个数据操作提交给数据库并执行. 添加数据 using (var db = new O ...

  2. Mego开发文档 - 索引

    Mego 开发文档 Mego 快速概述 主要特性 获取Mego 使用流程 模型 查询 保存数据 入门 Mego 快速开始 创建项目 安装Nuget包 创建连接字符串 创建模型及数据上下文(添加引用) ...

  3. Mego开发文档 - 保存关系数据

    保存关系数据 由于没有对象的更改跟踪,因此关系的操作需要开发者明确指定,在成功执行后Mego会影响到相应的关系属性中. 添加关系 在以下示例中如果成功执行则source的Customer属性会变为ta ...

  4. Mego开发文档 - 快速概述

    Mego 快速概述 Mego 是一款轻量级,可扩展和跨平台的数据访问技术. Mego 是一个对象关系映射器(O / RM),它使.NET开发人员能够使用.NET对象处理数据库.它消除了开发人员通常需要 ...

  5. Mego开发文档 - 快速开始

    Mego 快速开始 我们将创建一个简单的数据新增及查询来演示 Mego 的使用过程.演示中都是使用 Visual Studio 2017 作为开发工具,SQL Server 2012 作为数据库. 创 ...

  6. Mego开发文档 - 处理并发冲突

    处理并发冲突 数据库并发是指多个进程或用户同时访问或更改数据库中的相同数据的情况.并发控制是指用于确保存在并发更改时数据一致性的特定机制. Mego实现了乐观并发控制,这意味着它可以让多个进程或用户独 ...

  7. Mego开发文档 - 事务

    事务 事务允许以原子方式处理多个数据库操作.如果事务已提交,则所有操作都已成功应用于数据库.如果事务回滚,则没有任何操作应用于数据库. 默认行为 默认情况下,如果数据库提供程序支持事务,则单次的提交操 ...

  8. Mego开发文档 - 从EF6/EFCore迁移到Mego

    从EF6/EFCore迁移到Mego框架 如果您有EntityFragmework6或EntityFragmeworkCore的开发经验,在首次接触Mego框架时会发现这两个框架非常相似,本文将帮忙您 ...

  9. Mego开发文档 - 数据注释建模

    数据注释建模 Mego框架使用一组约定来基于CLR类来构建模型.您可以指定其他配置来补充或覆盖通过约定发现的内容. 在 Mego 中所有的数据对象必须要有主键.这里需要声明与EF不同的是框架只支持数据 ...

随机推荐

  1. Could not get dialect instance.

    一般此错误都是和数据库有关,请确认数据库配置文件是否配置正确,或者确认数据库是否连接正常

  2. 使用BigDecimal报的错

    错误:java.lang.arithmeticexception: non-terminating decimal expansion; no exact representa  小数位膨胀 解决方法 ...

  3. 关于win8/win8.1系统不能调节亮度的解决办法

    有时候我们重装了win8系统之后开始可以调节亮度,但是再重新安装了显卡驱动之后发现不能调节亮度了,解决办法就是添加一项注册表. 下载地址:http://7xnarc.com1.z0.glb.cloud ...

  4. LOOKUP函数入门

    2018-02-11  作者:ExcelHome  阅读:22045次       转载请注明来源"ExcelHome"并保留原文链接.固定链接:http://www.excelh ...

  5. SpringMvc的传递参数方式 -- url / requestMapping

    在使用spring的项目中,前台传递参数到后台是经常遇到的事, 我们必须熟练掌握一些常用的参数传递方式和注解的使用,废话少说,直接上正文. 1. @requestMapping: 类级别和方法级别的注 ...

  6. protobuf lib库的使用

    问题记录: 1.在使用protobuf反射机制动态加载解析proto文件时,发现当proto文件中含有import系统proto文件的语句时,无法解析文件,解决方法是添加路径映射. google::p ...

  7. bug单的生命周期

    测试工程师发现了软件的缺陷(bug),那修复bug的整个流程是怎么样的呢? 1.发现bug 2.和开发确认是否是bug 3.如果是bug则提bug单到测试经理,如果不是则放过 4.测试经理把bug单走 ...

  8. Git常用命令(二)------ 远程库操作

    本文总结自廖雪峰网站. Git支持多种协议,git://使用ssh协议,速度最快,也可使用https等协议. 对远程库操作: 推送: 1.先远程建立一个Repo库,f 2.远程和本地关联: git r ...

  9. New UWP Community Toolkit - RadialProgressBar

    概述 UWP Community Toolkit  中有一个圆形的进度条控件 - RadialProgressBar,本篇我们结合代码详细讲解  RadialProgressBar 的实现. Radi ...

  10. UWP 使用Windows.Media.FaceAnalysis.FaceDetector检测人脸

    话说现在检测人脸的技术有很多.有在线AI服务,比如Megvii Face++,Microsoft Cognitive Services,Tencent AI等等.还有本地的库实现的,比如OpenCV. ...