Mozi.DataAccess

SQL ORM 套件
授权协议 MIT
开发语言 C#
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 不详
投 递 者 束俊英
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Mozi.DataAccess 是一个基于 .Net 开发的 SQL ORM 套件。框架的设计理念是:轻量,简洁,务实。

目的和愿景

开发这个项目就是为了最大限度的降低学习和使用成本,减少项目重构成本,提高开发效率。ORM这个圈子本身是有很多成熟的优秀的框架,今年流行这个明年流行那个,常常使我们疲于学习。 无论框架怎么变,一个ORM框架的核心无非是:1,持久化;2,对象映射;3,数据库访问。在以上三点的基础上需要同时保证:1,易用且实用;2,充分解耦合重构成本低;3,性能损耗低。

特点

  1. 轻量化
    项目编译结果小,没有复杂的配置文件

  2. 可用性
    框架经过了长周期的项目考验

  3. 低耦合
    实现了业务逻辑和SQL的彻底分离,框架只专注于数据库的访问

  4. 可控性
    框架的使用最大限度的保留了SQL的原貌

模块

  1. 数据库访问

  2. 对象映射

  3. SQL执行队列

数据库适配

  • SQLServer
  • Sqlite
  • MySql

SQL表达式定义

[{
	"name": "mz.createtableuser",
	"command": "query",
	"parameter": [ ],
	"statement": "
		IF NOT EXISTS(SELECT 1 FROM sysobjects WHERE id=object_id(\'$schema$.tbUsers\') AND TYPE =\'U\'))
		CREATE TABLE tbUsers
		(
				UserId   varchar(10) default \'\' not null ,
				NickName varchar(100) default \'\' not null,
				UserPwd  varchar(32) default \'\' not null,
				RegDate  date not null,
				Mobile   varchar(20) default \'\' not null,
				IsForbidden int default 0 not null
				CONSTRAINT PK_TBUSERS PRIMARY KEY (UserId)
		)
	",
	"results": [ ],
	"comment": "创建用户信息表"
},{
	"name": "mz.getuserinfo",
	"command": "query",
	"parameter": [ "UserId" ],
	"statement": "select * from $schema$.tbUsers where UserId=#param.UserId# ",
	"results": [ "UserId", "Nickname" ],
	"comment": "获取用户信息"
}]   
 

模型类定义

using System;

namespace Mozi.DataAccess.Test.Model
{
	public class User
    {
        public string UserId    { get; set; }
        public string NickName  { get; set; }
        public string Password  { get; set; }
        public string Mobile    { get; set; }
        public DateTime RegDate { get; set; }
        public int IsForbidden  { get; set; }
    }
}
 

数据访问接口定义

    public class DaUser
    {
        /// <summary>
        /// 数据库访问对象
        /// </summary>
        SQLServer.Access _server = new SQLServer.Access(new ServerConfig()
        {
            Host="127.0.0.1",
            Instance="",
            User="sa",
            Password="123456",
            ConnectionName="测试库",
            Database="example"
        });
        /// <summary>
        /// 查询指定的用户
        /// </summary>
        /// <param name="userid"></param>
        /// <returns></returns>
        public User GetUsers(string userid)
        {
            SqlStatement sql = SqlMapContainer.Find("mz.getuserinfo");
            return _server.ExecuteQueryForTop<User>(sql, new { UserId = userid });
        }
    }	

版权说明

本项目采用MIT开源协议,引用请注明出处。欢迎复制,引用和修改。复制请注明出处,引用请附带证书。意见建议疑问请联系软件作者,或提交ISSUE。

By Jason on Oct. 12,2017

 

 相关资料
  • 套件 套件可以手动下载安装,但有套件命令的帮助下,它可以更快的运作。 它透过定义在 fuel/core/config/package.php 的来源列表, 及任何其他可以编辑或複製到 fuel/app/config 文件夹的配置档案寻找套件。 Oil 很聪明,所以它在做任何套件命令之前,会检查是否你已经在你的电脑上安装 Git。 如果你已经安装 Git,Oil 会安装一个套件做为 Git 储存库,

  • OpenGPG 套件 OpenPGP 是一个加密和签名的标准。尽管 最近 有一些 关于 它的 争议,但他和 Yubikey 结合使用并没有什么问题。

  • 我正在尝试实现Pushkit/CallKit,但在旧版iPhone上遇到了一些问题。它适用于iPhone X和iPhone XR(13.3)。我特别测试过的两款手机是iPhone SE(13.3.1)和iPhone 7(11.2.5)。 当应用位于前台时,它们可以工作,但是当它们在后台时,即使收到 VOIP 通知并且呼叫已注册到 callkit,也永远不会显示传入呼叫 UI。有什么想法吗?以下是日

  • Orm 是 物件关联对映(Object Relational Mapper) 的简写,它做两件事: 对应你资料库里的资料列到物件, 并能让你在这些物件之间建立关係。 它紧随 活动记录模式( Active Record Pattern),但也受到其他系统的影响。 CRUD:建立、读取、更新和删除 一旦你配置好你的模型,是时候开始在你的资料库中建立、读取、 更新和删除条目。 建立(Create) //

  • 当谈论到组织、重用及分享你的程式码,套件是能让你达成的好方法。 它们可以包含所有种类像模型、第三方函式库、配置等。 套件也能让你扩充核心而不搞乱你的 app/classes 目录。 要澄清套件是什幺,以下有套件的「是」与「否」。 套件…… 是组织你程式码的好方法, 提供一个储存第三方函式库的地方, 能让你扩充其他套件而不与别人的程式码搞乱, 一个扩充 Fuel 而不搞乱核心文件的地方。 但…… 套

  • 套餐是虚拟机CPU和内存的组合搭配。 套餐是虚拟机CPU和内存的组合搭配,针对不同应用场景可以选择不同规格的套餐创建虚拟机。 套餐来源 本地IDC套餐:平台部署完成后,将会内置常见的本地IDC的套餐供 云联壹云 平台和私有云平台的虚拟机使用。后续用户可以自定义添加套餐或在私有云平台上同步其他规格的套餐到本地IDC列表。 说明 私有云平台上套餐与 云联壹云 套餐同步规则: 同一规格的套餐在 云联壹云

  • 问题内容: 我最近一直在将SSL套接字用于消息传递系统。 我终于开始使用CA颁发的证书。我将其导入到密钥库中,设置了密钥库属性,并启动了客户端,但是当我尝试发送数据时,我一直收到握手异常。 我启用了调试模式,发现这是由于造成的。有什么想法吗? 如果有帮助,它还说它忽略了TLSV1和TLSV1.1中的大约10个密码套件。 我还安装了无限强度加密策略。 客户代码 服务器代码 编辑: 我刚刚添加了密码,

  • Selenium不仅仅是一个工具,而是一套软件,每个软件都有不同的方法来支持自动化测试。 它由四个主要组成部分组成,包括: Selenium集成开发环境(IDE) Selenium远程控制器(现已弃用) webdriver Selenium Grid 1. Selenium集成开发环境(IDE) Selenium IDE实现为Firefox扩展,在测试脚本上提供记录和回放功能。 它允许测试人员以H