复杂保存操作

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. Django 2.0 学习(03):Django视图和URL(下)

    接上篇博文,继续分析Django基本流程. 编写第一个(view)视图函数 1.打开文件polls/views.py,输入下面的Python代码: from django.http import Ht ...

  2. 简单几步优化你的windows,加快开机速度(重装windows之后要做的几件事)

    每个人都想要让自己的系统运行得快一些,开机快一些,我就来说说我自己的经验,我使用的系统是windows8.1,当然这有些方法也适用于其他的系统,我每次重装完系统之后第一件事就是下面几步,当然重装系统之 ...

  3. 设计模式——职责链模式(C++实现)

    #include <iostream> #include <string> using namespace std; class Handler { public: Handl ...

  4. Java CAS机制详解

    CAS目的: 在多线程中为了保持数据的准确性,避免多个线程同时操作某个变量,很多情况下利用关键字synchronized实现同步锁,使用synchronized关键字修可以使操作的线程排队等待运行,可 ...

  5. vue技术解析六之生命周期函数

  6. express+mongodb+socket.io

    node后端代码 // Setup basic express server var express = require('express'); var app = express(); var pa ...

  7. 选择排序—简单选择排序(Simple Selection Sort)

    基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素 ...

  8. Vmware虚拟机不能使用键盘的解决方法

    有个笔记本thinkpad T440要重装系统,但又怕前面的资料丢失,因此打算直接将整个物理机迁移到VCenter 6.5上去,比GHOST什么的方便多了,利用Vmware Convert工具直接在线 ...

  9. 【Flask】 使用Flask-Moment进行日期时间的管理

    Flask-Moment Flask-Moment又是一个flask的扩展模块,用来处理时间日期等信息.用这个模块主要是考虑到两点,第一是为了让不同时区的用户看到的都是各自时区的实际时间,而不是服务器 ...

  10. 使用ADO.NET查询和操作数据库

    String和StringBuilder 语法: //声明一个空的StringBuilder对象 StingBuilder对象名称 = new   StringBuilder(); //声明一个Str ...