复杂保存操作

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. 如何为Web应用选择托管主机

    PHP应用开发好了?恭喜你!不过,现在还没什么用,因为用户无法使用.你要把应用存储到服务器中,让预期受众能访问.一般来说,存储PHP应用有四种方式:共享服务器.虚拟私有服务器.专用服务器和平台即服务. ...

  2. HBase新的客户端接口

    最近学习接触HBase的东西,看了<Habase in Action>,但里面关于HBase接口都是过时的接口,以下为HBase新的客户端接口: package com.n10k; imp ...

  3. JavaIO 总结

    另外参考文章:http://www.ibm.com/developerworks/cn/java/j-lo-javaio/ 一. File类 file.createNewFile();file.del ...

  4. .net core2.0半年的使用经验之前言

    目录 前言 使用dapper做数据层调用 使用T4模板生成 使用缓存 使用swagger做接口文档(非restful) 使用identity做身份认证 使用jwt做身份认证 使用CORS跨域 调用we ...

  5. java中一个引人深思的匿名内部类

    前两天去面试javaweb问到一个问题,在你的项目中有没有用到线程,我特么的一想,这东西不是在c层面的吗,所以说我不了解线程..... 后来回去想啊想啊,我操这特么的不是再问我事物的控制,消息队列的回 ...

  6. Java DualPivotQuickSort 双轴快速排序 源码 笔记

    DualPivotQuicksort source code 这个算法是Arrays.java中给基本类型的数据排序使用的具体实现.它针对每种基本类型都做了实现,实现的方式有稍微的差异,但是思路都是相 ...

  7. [机器学习Lesson 2]代价函数之线性回归算法

    本章内容主要是介绍:单变量线性回归算法(Linear regression with one variable) 1. 线性回归算法(linear regression) 1.1 预测房屋价格 该问题 ...

  8. Android破解心得——记学习七少月安卓大型安全公开课

    第一课 讲解了关于在安卓破解之中环境的配置及所需要用到的软件,重要的软件是Androidkiller,安卓逆向助手 第二课讲解了java与smali的关系,从smail角度详细的分析了一个简单的Hel ...

  9. JavaScript(第二十二天)【动态加载js和css】

    学习要点: 1.元素位置 2.动态脚本 3.动态样式 本章主要讲解上一章剩余的获取位置的DOM方法.动态加载脚本和样式.   一.元素位置 上一章已经通过几组属性可以获取元素所需的位置,那么这节课补充 ...

  10. 2018.3.29 DIV位置调整代码

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...