.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);
            }
        }
    }
View Code

四、修改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, "110")
                .AddColumn(NBear_UserInfo.UserInfo.Sex, 1)
                .AddColumn(NBear_UserInfo.UserInfo.Men, 0)
                .AddColumn(NBear_UserInfo.UserInfo.Remark, "NBear用户备注").Execute();

            //2.删除
            int num2 = db.Delete(NBear_UserInfo.UserInfo)
                 .Where(NBear_UserInfo.UserInfo.ID == 5).Execute();

            //3.修改
            int num3 = db.Update(NBear_UserInfo.UserInfo)
                .AddColumn(NBear_UserInfo.UserInfo.Name, "Himi_NBear")
                .Where(NBear_UserInfo.UserInfo.ID == 4).Execute();

                
            //4.查看
            IList<NBear_UserInfo> ls= db.Select(NBear_UserInfo.UserInfo)
                .Where(NBear_UserInfo.UserInfo.Name.Contains("Himi"))
                .ToList<NBear_UserInfo>();

            return View();
        }
View Code

至此,NBear的简单使用已经结束,其语法有点特别,个人觉得还可以,需要自己手写的代码并不多,基本配置完了,后面只用基本都是点出来的。

原文地址:https://www.cnblogs.com/become/p/8875160.html