.NET 常用ORM之Nbear
NBear是一个基于.Net 2.0、C#2.0开放全部源代码的的软件开发框架类库。NBear的设计目标是尽最大努力减少开发人员的工作量,最大程度提升开发效率,同时兼顾性能及可伸缩性。
一、新建项目并添加NBear所需要的动态库:NBear.Core.dll、NBear.Mapping.dll、NBearLite.dll(dll位置在现在的NBear的dist\...文件夹里)

二、生成NBear映射类文件,生成器在下载的NBear的dist\... 文件夹里,名称为:NBearLite.QueryColumnsGenerator.exe,双击运行,如图:

三、生成类文件代码如下,并将类文件添加到当前项目中
namespace Model {
public class NBear_UserInfo {
public static @__Model.UserInfo_Columns UserInfo = new @__Model.UserInfo_Columns();
}
}
namespace @__Model {
public class UserInfo_Columns : NBearLite.IQueryTable {
private const string ___TABLE_NAME = "UserInfo";
private string ___aliasName;
private static NBearLite.QueryColumn _ID = new NBearLite.QueryColumn((___TABLE_NAME + ".ID"), System.Data.DbType.Int32);
private static NBearLite.QueryColumn _Name = new NBearLite.QueryColumn((___TABLE_NAME + ".Name"), System.Data.DbType.String);
private static NBearLite.QueryColumn _Age = new NBearLite.QueryColumn((___TABLE_NAME + ".Age"), System.Data.DbType.Int32);
private static NBearLite.QueryColumn _Sex = new NBearLite.QueryColumn((___TABLE_NAME + ".Sex"), System.Data.DbType.Int32);
private static NBearLite.QueryColumn _Men = new NBearLite.QueryColumn((___TABLE_NAME + ".Men"), System.Data.DbType.Int32);
private static NBearLite.QueryColumn _Remark = new NBearLite.QueryColumn((___TABLE_NAME + ".Remark"), System.Data.DbType.String);
public UserInfo_Columns(string aliasName) {
this.___aliasName = aliasName;
}
public UserInfo_Columns() {
this.___aliasName = ___TABLE_NAME;
}
public NBearLite.QueryColumn ID {
get {
if ((this.___aliasName == ___TABLE_NAME)) {
return _ID;
}
else {
return new NBearLite.QueryColumn((this.___aliasName + ".ID"), System.Data.DbType.Int32);
}
}
}
public NBearLite.QueryColumn Name {
get {
if ((this.___aliasName == ___TABLE_NAME)) {
return _Name;
}
else {
return new NBearLite.QueryColumn((this.___aliasName + ".Name"), System.Data.DbType.String);
}
}
}
public NBearLite.QueryColumn Age {
get {
if ((this.___aliasName == ___TABLE_NAME)) {
return _Age;
}
else {
return new NBearLite.QueryColumn((this.___aliasName + ".Age"), System.Data.DbType.Int32);
}
}
}
public NBearLite.QueryColumn Sex {
get {
if ((this.___aliasName == ___TABLE_NAME)) {
return _Sex;
}
else {
return new NBearLite.QueryColumn((this.___aliasName + ".Sex"), System.Data.DbType.Int32);
}
}
}
public NBearLite.QueryColumn Men {
get {
if ((this.___aliasName == ___TABLE_NAME)) {
return _Men;
}
else {
return new NBearLite.QueryColumn((this.___aliasName + ".Men"), System.Data.DbType.Int32);
}
}
}
public NBearLite.QueryColumn Remark {
get {
if ((this.___aliasName == ___TABLE_NAME)) {
return _Remark;
}
else {
return new NBearLite.QueryColumn((this.___aliasName + ".Remark"), System.Data.DbType.String);
}
}
}
public string ___GetTableName() {
return ___TABLE_NAME;
}
public @__Model.UserInfo_Columns @__Alias(string aliasName) {
return new @__Model.UserInfo_Columns(aliasName);
}
}
}
四、修改webconfig配置文件
和一般的项目一样,在webconfig中加上connectionStrings数据库连接点(注意这个name,在后面代码会使用到,没有特别的要求,可以随意命名)
<connectionStrings>
<add name ="NBearDBConn" connectionString="Data Source=.;Initial Catalog=Test;uid=sa;password=XXXXXX;"/>
</connectionStrings>
五、实际使用,代码如下:
public ActionResult Index()
{
Database db = new Database("NBearDBConn");
//1.增加
int num1 = db.Insert(NBear_UserInfo.UserInfo)
.AddColumn(NBear_UserInfo.UserInfo.Name, "NBear用户")
.AddColumn(NBear_UserInfo.UserInfo.Age, "")
.AddColumn(NBear_UserInfo.UserInfo.Sex, )
.AddColumn(NBear_UserInfo.UserInfo.Men, )
.AddColumn(NBear_UserInfo.UserInfo.Remark, "NBear用户备注").Execute(); //2.删除
int num2 = db.Delete(NBear_UserInfo.UserInfo)
.Where(NBear_UserInfo.UserInfo.ID == ).Execute(); //3.修改
int num3 = db.Update(NBear_UserInfo.UserInfo)
.AddColumn(NBear_UserInfo.UserInfo.Name, "Himi_NBear")
.Where(NBear_UserInfo.UserInfo.ID == ).Execute(); //4.查看
IList<NBear_UserInfo> ls= db.Select(NBear_UserInfo.UserInfo)
.Where(NBear_UserInfo.UserInfo.Name.Contains("Himi"))
.ToList<NBear_UserInfo>(); return View();
}
至此,NBear的简单使用已经结束,其语法有点特别,个人觉得还可以,需要自己手写的代码并不多,基本配置完了,后面只用基本都是点出来的。
.NET 常用ORM之Nbear的更多相关文章
- ORM概述及常用ORM框架
一.ORM ORM(Object-relational mapping),即对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.也就是说,ORM是通过使用描述对象和数据库之间映 ...
- .NET 常用ORM之SubSonic
一.SubSonic简单介绍 SubSonic是一个类似Rails的开源.NET项目.你可以把它看作是一把瑞士军刀,它可以用来构建Website和通过ORM方式来访问数据.Rob Conery和Eri ...
- .NET 常用ORM之iBatis
ibatis 一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目,到后面发展的版本叫MyBatis但都是指的同一个东西.最初侧重 ...
- .NET 常用ORM之Gentle.Net
.Net常用的就是微软的EF框架和Nhibernate,这两个框架用的都比较多就不做详细介绍了,今天我们来看看Gentle.Net,Gentle.Net是一个开源的优秀O/R Mapping的对象持久 ...
- .Net 常用ORM框架对比:EF Core、FreeSql、SqlSuger
前言: 最近由于工作需要,需要选用一种ORM框架,也因此对EF Core.FreeSql.SqlSuger作简单对比.个人认为各有有优势,存在即合理,不然早就被淘汰了是吧,所以如何选择因人而议.因项目 ...
- .NET 常用ORM之NHibernate
NHibernate做.Net应该都不陌生,今天我们就算是温故下这个技术,概念性的东西就不说了,这次主要说本人在实际使用的遇到的问题,比较费解现在就当是记录下,避免以后再犯.本次主要使用的情况是1对N ...
- yii 常用orm
yii2 orwhere andwhere的复杂写法:https://www.codercto.com/a/6513.html $files = XXXX::find() ->andWhere( ...
- django ORM
http://www.cnblogs.com/alex3714/articles/5512568.html 常用ORM操作 一.示例Models from django.db import model ...
- 轻量级ORM框架 QX_Frame.Bantina(二、框架使用方式介绍)
轻量级ORM框架QX_Frame.Bantina系列讲解(开源) 一.框架简介 http://www.cnblogs.com/qixiaoyizhan/p/7417467.html 二.框架使用方式介 ...
随机推荐
- AppState使用
AppState使用 import React, { Component } from 'react'; import {AppRegistry,StyleSheet,Text,View,AppSta ...
- WebStrom2018注册码
2RRJMBXW33-eyJsaWNlbnNlSWQiOiIyUlJKTUJYVzMzIiwibGljZW5zZWVOYW1lIjoi5b285bK4IHNvZnR3YXJlMiIsImFzc2lnb ...
- 【LeetCode每天一题】Combination Sum(组合和)
Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), fin ...
- [LeetCode] 586. Customer Placing the Largest Number of Orders_Easy tag;SQL
Query the customer_number from the orders table for the customer who has placed the largest number o ...
- js贪心算法---钱币找零问题
function MinCoinChange(coins){ var coins = coins.sort(function(a,b){ return b - a; }); this.makeChan ...
- CentOS6.5安装RHive
1.安装RServe软件包(各个节点都要安装) [root@Hadoop-NN-01 mysofts] # R CMD INSTALL Rserve_1.7-2.tar.gz 2.设置环境变量 [ro ...
- 软件测试常用Linux命令
有些技能可以事半功倍,有些命运掌握在我们手中.熟练的掌握和使用这些命令可以提高工作效率,并且结合这些命令对测试过程中遇到的问题进行一些初步的定位. 1 目录与文件操作 1.1 ls(初级) 使用权限: ...
- TM-align TM-score安装
TM-align是由zhang yang LAB开发的一款做蛋白结构比对的软件. 下载链接:http://zhanglab.ccmb.med.umich.edu/TM-align/TMtools201 ...
- cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)
记录一下,好开心,感觉今天自己又学到东西了,对于屏幕双击事件本来还毫无头绪的,今天得以解决总算没白费加班,其实原理很简单:就是在点击事件里做一个判断,这个判断就是需要获取当前系统的时间的毫秒差,第一次 ...
- Hibernate框架第一天
**框架和CRM项目的整体介绍** 1. 什么是CRM * CRM(Customer Relationship Management)客户关系管理,是利用相应的信息技术以及互联网技术来协调企业与顾客间 ...