轻量级orm框架-easy4net

easy4net

easy4net是一个轻量级orm框架,灵活在于可以自己编写复杂的SQL语句查询,简单在于几分钟内便能上手使用,并支持mysql, mssql, oracle, access数据库. easy4net技术QQ 群:162695864

分页查询:

  • 1. 命名参数, ParamMap传参方式:
  • 2. 支持多层嵌套查询自动分页功能。

int pageIndex = 1;
int pageSize = 3;
string strSql = "SELECT e.*, c.company_name FROM employee e INNER JOIN company c ON e.company_id = c.id WHERE e.name = @name";

ParamMap param = ParamMap.newMap();
param.setPageParamters(page, limit);
//分页时使用的排序字段,必填,请带上SQL表名的别名,如employee的为: e
param.setOrderFields("e.id", true);
param.setParameter("name", "LiYang");

DBHelper dbHelper = DBHelper.getInstance();
List<Employee> emList = dbHelper.Find<Employee>(strSql, param);

分页查询:

  • 1. 命名参数, ParamMap传参方式:
  • 2. 返回总条数和数据集合的对象PageResult

public PageResult<Store> findByPage(int page, int limit)
{
    DBHelper db = DBHelper.getInstance();

    String sql = "select * from store";

    ParamMap param = ParamMap.newMap();
    param.setPageParamters(page, limit);
    param.setOrderFields("id", true);

    PageResult<Store> pageResult = db.FindPage<Store>(sql, param);

    return pageResult;
}


public class PageResult<T>
{
    /// <summary>
    /// 分页查询中总记录数
    /// </summary>
    public int Total {get; set;}

    /// <summary>
    /// 分页查询中结果集合
    /// </summary>
    public List<T> DataList {get; set;}
}

查询单条记录:


string strSql = "SELECT e.*, c.company_name FROM employee e INNER JOIN company c ON e.company_id = c.id WHERE e.name = @name";
ParamMap param = ParamMap.newMap();
param.setParameter("name", "LiYang");

Employee em = dbHelper.FindOne<Employee>(strSql, param);

普通查询:


string strSql = "SELECT e.*, c.company_name FROM employee e INNER JOIN company c ON e.company_id = c.id";

List<Employee> emList = dbHelper.Find<Employee>(strSql);

新增:

  • 1. 新增后返回新增记录的主键id值
  • 2. 主键id值已经自动填充到新增的对象entity中

//创建公司
Company company = new Company();
company.CompanyName = txtName.Text.Trim();
company.Industry = txtIndustry.Text.Trim();
company.Address = txtAddress.Text.Trim();

DBHelper dbHelper = DBHelper.getInstance();
dbHelper.Insert<Company>(company);

if (company.Id > 0) {
    MessageBox.Show("创建公司成功!");
}


//新增员工
Company company = m_CompanyList[cbCompany.SelectedIndex]; 
Employee employee = new Employee();
employee.Name = txtName.Text.Trim();
mployee.Age = Convert.ToInt32(txtAge.Text.Trim());
employee.Address = txtAddress.Text.Trim();
employee.Created = DateTime.Now;
employee.CompanyId = company.Id;

DBHelper dbHelper = DBHelper.getInstance();
dbHelper.Insert<Employee>(employee);
if (employee.Id > 0)
{
    MessageBox.Show("新增员工成功!");
}

批量新增:

  • 1. 主键id值已经自动填充到新增的对象entity中
  • 2. 批量新增方法比手动循环多个对象然后调用新增性能高。

List<Company> companyList = ...;
dbHelper.Insert(companyList);

修改:


Company entity = new Company();
entity.Id = 1;
entity.Name = "百度";
dbHelper.Update(entity);

批量修改:

  • 1. 批量修改方法比手动循环多个对象然后调用修改性能高。

DBHelper db = DBHelper.getInstance();
List<Company> companyList = ...;
dbHelper.Update(companyList);

删除:

  • 1. 按对象方式删除数据
  • 2. 按主键id方式删除数据

Company company = m_companyList[i];
//remove a object
dbHelper.Delete(company);

//remove by id
dbHelper.Delete(company.Id);

批量删除:

  • 1. 按对象方式删除数据
  • 2. 按主键id方式删除数据
  • 3. 批量删除比手动循环调用删除性能要高

//remove by object
List<Company> companyList = ...;
dbHelper.Delete(companyList);

//remove by id
object[] ids = new object[]{1,2,3,4,5};
dbHelper.Delete(ids);

数据库与C#对象映射关系配置:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;  

namespace Easy4net.Entity  
{  
     [Table(Name = "company")] 
     public class Company
     { 
        [Id(Name = "id", Strategy = GenerationType.INDENTITY)]
        public int? Id{ get; set; } 

        [Column(Name = "company_name")]
        public String CompanyName{ get; set; }

        [Column(Name = "industry")]
        public String Industry { get; set; }

        [Column(Name = "address")]
        public String Address { get; set; } 

     } 
}  


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text;  
namespace Easy4net.Entity  
{  
     [Table(Name = "employee")] 
     public class Employee
     { 
        [Id(Name = "id", Strategy = GenerationType.INDENTITY)]
        public int? Id{ get; set; } 

        [Column(Name = "name")]
        public String Name{ get; set; } 

        [Column(Name = "age")]
        public int? Age{ get; set; } 

        [Column(Name = "address")]
        public String Address{ get; set; } 

        [Column(Name = "created")]
        public DateTime? Created{ get; set; } 

        [Column(Name = "company_id")]
        public int? CompanyId{ get; set; }

        [Column(Name = "company_name", IsInsert = false, IsUpdate = false)]
        public String CompanyName { get; set; } 

     } 
}   

*数据库连接配置 web.config中: *

  • dbType中配置sqlserver, mysql, oracle来支持不同的数据库

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <!--<add key="DbType" value="sqlserver"/>
    <add key="connectionString" value="Data Source=121.199.9.217;Initial Catalog=test;User ID=test;Password=test123;Trusted_Connection=no;Min Pool Size=10;Max Pool Size=100;"/>-->

    <!--<add key="DbType" value="mysql"/>
    <add key="connectionString" value="Data Source=121.199.34.41;port=8001;User ID=test;Password=123456;DataBase=test;Min Pool Size=10;Max Pool Size=100;"/>-->

    <!--<add key="DbType" value="access"/>
    <add key="connectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\tj.mdb"/>-->

    <!--<add key="DbType" value="sqlserver"/>
    <add key="DbHost" value="8QHMQCAJBCOOHW2\SQLEXPRESS" />
    <add key="DbName" value="test"/>
    <add key="DbUser" value="sa"/>
    <add key="DbPassword" value="111111"/>
    <add key="DbMinPoolSize" value="10"/>
    <add key="DbMaxPoolSize" value="100"/>-->

    <add key="DbType" value="mysql"/>
    <add key="DbHost" value="localhost" />
    <add key="DbName" value="test_db"/>
    <add key="DbUser" value="user_test"/>
    <add key="DbPassword" value="111111"/>
    <add key="DbPort" value="3306"/>
    <add key="DbMinPoolSize" value="10"/>
    <add key="DbMaxPoolSize" value="100"/>

  </appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值