轮子来袭 vJine.Core Orm 之 01_快速体验
vJine.Core 是.Net环境下C#类库,在其包含的众多功能中ORM功能尤为突出,现简介如下。
一、支持的数据库:
SQLite, MySQL, MS SQL, Oracle。
二、使用方法:
0.添加引用:
库文件vJine.Core.dll,
using vJine.Core;
using vJine.Core.ORM;
1.定义类:
using System;
using System.Collections.Generic;
using System.Text;
using vJine.Core.Base;
using vJine.Core.IO;
using vJine.Core.ORM; namespace vJineCore_QuickStart.BML { public class My_Model : ItemBase /*不是必须继承*/ {
public My_Model() {
this.ID = Guid.NewGuid().ToString("N");
} public partial class _ {
public static readonly Property<My_Model, string> ID = new Property<My_Model, string>("ID");
}
string _ID;
[Key(IsPrimary=true)] //指定主键
public string ID {
get {
return this._ID;
}
set {
if (value != this._ID) {
this._ID = value;
this.NotifyPropertyChanged("ID");
}
}
} bool _IsActive;
public bool IsActive {
get {
return this._IsActive;
}
set {
if (value != this._IsActive) {
this._IsActive = value;
this.NotifyPropertyChanged("IsActive");
}
}
} public enum Status:byte {
Unknown = ,
Ready = ,
Running = ,
Done =
} Status _MyStatus;
public partial class _ {
public static readonly Property<My_Model, Status> MyStatus = new Property<My_Model, Status>("MyStatus");
}
public Status MyStatus { //支持枚举类型
get {
return this._MyStatus;
}
set {
if (value != this._MyStatus) {
this._MyStatus = value;
this.NotifyPropertyChanged("MyStatus");
}
}
} public partial class _ {
public static readonly Property<My_Model, int> Qty = new Property<My_Model, int>("Qty");
}
int _Qty;
public int Qty {
get {
return this._Qty;
}
set {
if (value != this._Qty) {
this._Qty = value;
this.NotifyPropertyChanged("Qty");
}
}
} DateTime _Stamp;
public DateTime Stamp {
get {
return this._Stamp;
}
set {
if (value != this._Stamp) {
this._Stamp = value;
this.NotifyPropertyChanged("Stamp");
}
}
}
}
}
2.配置连接:
<connectionStrings>
<add name="Default" providerName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=【数据库名称】;Integrated Security=True"/>
</connectionStrings>
注:请将【数据库名称】改为你本地对应的数据库名。
3.新建实例:
DataManager dm = new DataManager(); //引用Default配置
DataManager dm = new DataManager("specific_name"); //引用指定配置
4.创建数据表:
//Create Table
dm.Create<My_Model>();
5.增删改查:
My_Model new_data = new My_Model() {
Qty = , IsActive = false, MyStatus = My_Model.Status.Ready
};
new_data.Stamp = dm.Now;
dm.I<My_Model>(new_data);
dm.D<BML.My_Model>(BML.My_Model._.ID == "xxx");
dm.U<BML.My_Model>(My_Model._.Qty.EQ(My_Model._.Qty + 1) & My_Model._.MyStatus.EQ(My_Model.Status.Running), My_Model._.MyStatus == My_Model.Status.Ready);
List<My_Model> container = new List<My_Model>();
//先定义一个实现IList<>接口的对象容器,查询结果将累加填充
dm.Q<My_Model>(container, My_Model._.ID.Like("ABC%") & My_Model._.Qty > );
三、附件:
四、附注:
1、默认连接配置为 MS SQL Server,未保证测试顺利进行,请优先使用MS SQL Server, connectionString请依据您服务器的实际情况更改。
2、本篇仅作为功能体验的引导文章,后续将陆续推出使用细则、架构设计等相关内容。
3、vJine.Core将已开源模式提供,可用免费于私人和商业用途,但作者本人不反使用者通过以下方式给以赞同(顶贴、点赞、推荐)。
4、关于性能:性能方面个人暂无比较,如有热衷于这方面的朋友帮忙做个测试,将不胜感激。
5、vJine.Core的目标是:简洁、高效、轻量级、非侵入。
轮子来袭 vJine.Core Orm 之 01_快速体验的更多相关文章
- 轮子来袭 vJine.Core Orm 之 03_架构分析
1.vJine.Core ORM 架构: 如上图所示,vJine.Core ORM的特点如下: 所有操作均以DataManager为核心: DataManager业务部分的增删改查操作依赖于Class ...
- 轮子来袭 vJine.Core Orm 之 04_使用进阶
1.配置文件: 框架默认情况下支持"connectionStrings"的配置方式,如<轮子来袭 vJine.Core Orm 之 01_快速入门>所述: 框架的进阶设 ...
- 轮子来袭 vJine.Core Orm 之 02_代码生成
1.下载并安装动软代码生成器: 2.下载vJine.Core.Orm模板: 3.解压模本文件并复制到如下的动软代码生成器模板目录: 4.打开动软代码生成器会看到模板已识别加载: 5.选择模板代码批量生 ...
- 轮子来袭 vJine.Core 之 AppConfig<T>
1.引用vJine.Core; 2.定义配置类; using System; using System.Collections.Generic; using System.Text; using Sy ...
- .NET Core前后端分离快速开发框架(Core.3.0+AntdVue)
.NET Core前后端分离快速开发框架(Core.3.0+AntdVue) 目录 引言 简介 环境搭建 开发环境要求 基础数据库构建 数据库设计规范 运行 使用教程 全局配置 快速开发 管理员登录 ...
- [转].NET Core前后端分离快速开发框架(Core.3.0+AntdVue)
[转].NET Core前后端分离快速开发框架(Core.3.0+AntdVue) 目录 引言 简介 环境搭建 开发环境要求 基础数据库构建 数据库设计规范 运行 使用教程 全局配置 快速开发 管理员 ...
- vJine.Core 0.3.0.49 正式发布
nuget: https://www.nuget.org/packages/vJine.Core/ oschina: http://git.oschina.net/vjine/vJine.Core/a ...
- .Net Core ORM选择之路,哪个才适合你 通用查询类封装之Mongodb篇 Snowflake(雪花算法)的JavaScript实现 【开发记录】如何在B/S项目中使用中国天气的实时天气功能 【开发记录】微信小游戏开发入门——俄罗斯方块
.Net Core ORM选择之路,哪个才适合你 因为老板的一句话公司项目需要迁移到.Net Core ,但是以前同事用的ORM不支持.Net Core 开发过程也遇到了各种坑,插入条数多了也特别 ...
- .Net Core 3.0 IdentityServer4 快速入门
.Net Core 3.0 IdentityServer4 快速入门 一.简介 IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架. 将 ...
随机推荐
- JVM之字节码——Class文件格式
如同讲汇编必先讲计算机组成原理,在开始字节码之前,我们先了解一下JVM的主要构成. 在JVM的内部,主要由如下几个部分构成: 1.数据区 方法区:存放类定义信息.字节码.常量等数据,在Sun HotS ...
- UVa 10465 Homer Simpson (枚举)
10465 - Homer Simpson Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onli ...
- PowerDesigner 面向对象模型(OOM)
PowerDesigner 面向对象模型(OOM)说明 nulljavasystemstringpowerbuilderclass 目录(?)[+] 一. OOM 简介 Object- ...
- C#中反射的使用(How to use reflect in CSharp)(1)
最近想做一个插件式的软件给公司的监控用,初步的想法是使用C#去反射Dll,Invoke其中的方法.此文仅供开发参考,不涉及原理,98%的代码以及2%的废话. 测试Solution是这么建的(.NET ...
- Asp.Net事务和异常处理:
Asp.Net事务和异常处理: 一.什么是事务处理? 事务处理是一组组和成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性. 如果在事务过程中没有遇到错误, ...
- php throw new Excpetion()之后,程序还往下继续运行吗?
经过测试是不会往下执行的,直接catch抛出异常了.
- android开发学习:打电话和发短信
1.新建一个android项目 File--New--Other--android application project 填写application name(就是应用的名字.比方:天天酷跑) 填写 ...
- 十、Socket之UDP编程
UDP基础知识 UDP(User Datagram Protocol,用户数据报协议)是一个简单的.面向数据报的无连接协议,提供了快速但不一定可靠的传输服务. UDP与TCP相比主要有以下区别. 1. ...
- js jquery 等的地址
jquery在线地址(jquery地址):http://code.jquery.com/jquery-latest.js js人脉图(关系图)插件: http://js.cytoscape.org/
- mysql服务器辅助选项
查看控制台命令行前缀 : echo $PS1 ,例如输出 '[\u@\h \w]# 其中,\u是用户名,\h是主机名称: hostname -s 可以查看当前主机名, hostname 'z ...