04 2018 档案
摘要:欢迎使用 Mego 什么是 Mego ? Mego 是一个高性能且功能强大的(O / RM)开发框架,它使 .NET 开发人员能够使用 .NET 对象处理数据库。它消除了开发人员通常需要编写的大部分数据访问代码的需求。 我如何开始? 您可以查看我们的 "入门教程" 以获取使用本框架的最佳实践。 我在
阅读全文
摘要:从EF6/EFCore迁移到Mego框架 如果您有EntityFragmework6或EntityFragmeworkCore的开发经验,在首次接触Mego框架时会发现这两个框架非常相似,本文将帮忙您了解到两者的差异以及从EF6/EFCore迁移到Mego的方法。 Mego本身就是基于EF6与EFC
阅读全文
摘要:原生SQL操作 我们认为一个框架不能解决所有的问题,在开发过程中还是会有各种需要直接操作SQL语句的情况,因此Mego提供了一些API以方便处理此类情况。 值查询 数据查询 您可以使用一段SQL语句将查询结果返回到指定类型的对象中。 执行存储过程 您可以带参数执行一个存储过程,参数我们使用从0开始编
阅读全文
摘要:匿名对象操作 既然普通的CLR类型可以映射到数据表,那么匿名类型也同样可以。Mego中提供了针对匿名类型操作数据表的API以方便一些临时的增删改查操作。我们在操作需要创建出一个匿名类型,这样可以通知Mego你需要操作的列。由于框架的限制,您必须要在类型中包含一个名为Id的属性作为操作的主键,同时您需
阅读全文
摘要:数据库提供者 Mego做为一个功能强大的ORM框架,同样也提供了对多个数据库的支持。我们使用了与其他ORM完全不同的方式以实现对多个数据库的支持。我们的理念是 ORM For Any ADO.NET Data Source 任何支持ADO.NET的数据源都可以使用Mego完成ORM的功能,只要满足下
阅读全文
摘要:快速概述 是一款轻量级,可扩展和跨平台的数据访问技术。 Mego 是一个对象关系映射器(O / RM),它使.NET开发人员能够使用.NET对象处理数据库。它消除了开发人员通常需要编写的大部分数据访问代码的需求。 Mego 支持多个数据库引擎,请参阅数据库提供者了解详细信息。 如果您想通过编写代码来
阅读全文
摘要:快速开始 我们将创建一个简单的数据新增及查询来演示 Mego 的使用过程。演示中都是使用 Visual Studio 2017 作为开发工具,SQL Server 2012 作为数据库。 创建项目 首先我们先创建一个名为 MegoGetStarted 控制台项目,如下图所示。 安装Nuget包 从V
阅读全文
摘要:数据库建模 我们还提供了一些其他的特性,用于定制化数据库对应的数据结构。 表映射 框架默认会使用CLR类型名称做为实际数据库的表名,当两者不一致时可以使用该特性强制表名称。 列映射 框架默认会使用CLR属性名称做为实际数据库的列名,当两者不一致时可以使用该特性强制列名。 数据类型 数据类型是指属性映
阅读全文
摘要:数据注释建模 Mego框架使用一组约定来基于CLR类来构建模型。您可以指定其他配置来补充或覆盖通过约定发现的内容。 在 Mego 中所有的数据对象必须要有主键 。这里需要声明与EF不同的是框架只支持数据注释的语法来构建模型,在框架自动发现后,只有通过其他接口才能更改模型定义,我们使用一种简单直接的方
阅读全文
摘要:基本保存操作 在Mego中没有更改跟踪,也就是说所有的新增、更新及删除都需要开发者自行判断。Mego会最为实际的将各个数据操作提交给数据库并执行。 添加数据 更新数据 删除数据 多个操作一次提交 以下示例中在执行最终操作时,Mego会将添加、更新和修改自动合并为一个命令提交。 "\[文档目录\]"
阅读全文
摘要:复杂查询 Mego 还支持一些更高级的LLINQ查询写法,本文只列出一部分。 分组汇总查询 分组查询及分页 连接分组查询 连接分组查询及分页 "\[文档目录\]"
阅读全文
摘要:基础查询 Mego 使用语言集成查询(LINQ)从数据库查询数据。LINQ允许您使用C#(或其他.NET语言)根据派生的上下文和实体类编写强类型查询。将LINQ查询的表示传递给数据库提供者,翻译为数据库特定的查询语言(例如关系数据库的SQL)。 文档代码示例的模型都是基于 "测试用例所用的模型" 。
阅读全文
摘要:建模高级主题 在建模过程中我们还有许多其他情况,这里列出本框架中的有用特性来用于解决此类问题。 函数映射 我们可以将指定的CLR函数映射到数据库中的系统函数或自定义函数,该特性用于补充框架中未提供的数据库函数交互。 通常我们会在LINQ表达式中使用这些函数,框架会将其应用到所提交的SQL语句中。 继
阅读全文
摘要:加载关系数据 Mego允许您使用模型中的导航属性来加载相关数据对象。目前只支持强制加载数据对象。只有正确配置了关系才能加载关系数据,相关内容可参考 "关系配置" 文档。 加载对象属性 您可以使用该 方法指定要包含在查询结果中的相关数据。在以下两个示例中,结果中返回的订单中会包含相应客户的数据填充到C
阅读全文
摘要:数据属性生成值 该功能用于在数据插入或更新时为指定属性生成期望的值,Mego提供了非常灵活的实现方式以满足各种数据提交时的自动赋值问题。 生成值目的及模式 在Mego中生成值的目的一定是插入数据或更新数据,我们对这两种目的分开管理没有任何关系。 有如下四种值生成模式可作用于属性: 1. 标识列 2.
阅读全文
摘要:保存关系数据 由于没有对象的更改跟踪,因此关系的操作需要开发者明确指定,在成功执行后Mego会影响到相应的关系属性中。 添加关系 在以下示例中如果成功执行则source的Customer属性会变为target对象。 更改关系 在Mego中实际是没有更改关系的概念,所有对关系的更改都可以看做新增关系。
阅读全文
摘要:处理并发冲突 数据库并发是指多个进程或用户同时访问或更改数据库中的相同数据的情况。并发控制是指用于确保存在并发更改时数据一致性的特定机制。 Mego实现了乐观并发控制,这意味着它可以让多个进程或用户独立进行更改,而无需同步或锁定的开销。在理想情况下,这些变化不会互相干扰,因此能够成功。在最糟糕的情况
阅读全文
摘要:复杂保存操作 Mego框架还提供了更强大的数据更新API,以简化开发工作,同时也保证的性能。 指定属性添加数据 本列中指定插入一个数据对象,并且只会插入三列数据,最后两个属性是以表达式的形式插入。 指定属性更改数据 本例中指定更新一个数据对象的Name和Address1属性,并且Address1的值
阅读全文
摘要:事务 事务允许以原子方式处理多个数据库操作。如果事务已提交,则所有操作都已成功应用于数据库。如果事务回滚,则没有任何操作应用于数据库。 默认行为 默认情况下,如果数据库提供程序支持事务,则单次的提交操作都将应用于事务中。如果任何更改失败,则事务回滚,并且没有任何更改应用于数据库。这意味着提交操作可以
阅读全文
摘要:Mego 开发文档 "\[English Document\]" "欢迎使用 Mego" "快速概述" 获取Mego 模型 查询 保存数据 入门 "快速开始" 创建项目 安装Nuget包 创建连接字符串 创建模型及数据上下文(添加引用) 初始化数据库 演示添加及查询操作 "从EF6/EFCore迁移
阅读全文
摘要:前言 从之前的两遍文章可以看出ORM的现状。 首先我们先谈下一个我们希望的ORM框架是什么样子的: 可能许多开发者都会有找过让自己比较满意的ORM框架,我也是其中之一,在漫长的信息系统设计及开发工作中,一直希望能有一个功能强大性能不错的ORM框架。一直都很关注 EntityFramework 的版本
阅读全文
摘要:接上文我们测试了各个ORM框架的性能,大家可以很直观的看到各个ORM框架与原生的ADO.NET在境删改查的性能差异。这里和大家分享下我对ORM框架的理解及一些使用经验。 ORM框架工作原理 典型ORM框架实现 EF功能最强的ORM EF与EFCore缺陷 ORM框架工作原理 所有的ORM框架的工作原
阅读全文
摘要:从刚刚开始接触ORM到现在已有超过八年时间,用过了不少ORM框架也了解了不少ORM框架,看过N种关于ORM框架的相关资料与评论,各种言论让人很难选择。在ORM的众多问题中最突出的问题是关于性能方面的问题,因此我在看了国外的一遍文章(Dapper vs Entity Framework vs ADO.
阅读全文

浙公网安备 33010602011771号