DbEntry.Net(Lephone Framework) Access ORM:安装和简单使用

本文介绍了一款轻量级且高性能的ORM框架DbEntry.Net的安装与使用过程,通过实例演示了如何利用该框架进行Access数据库操作,包括数据的增删改查等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中用到Access数据库,之前用的普通Ado.Net 三层。遇到表字段叫多时,就比较费力。想要使用ORM,无奈EF不支持Access。虽然可以改写linq to sql为Linq to Access,多多少少会有些兼容性的问题。这有个demo:http://www.cnblogs.com/wangjikun3/archive/2009/06/20/1507175.html

这里推荐个ORM框架,DbEntry.Net.官网地址:http://dbentry.codeplex.com/

轻量级,高性能,免费开源。支持C#,Visual Basic,ASP.Net.也提供 DbEntryDataSource for ASP.NET 2.0和Rails风格 MVC框架和 简单的Ioc 框架.支持Access(03,07),SqlServer(2000,2005,2008),Excel,MySql,Sqlite,Oracle,Firebird,PostgreSQL.

官网文档:http://dbentry.codeplex.com/documentation

 

一.安装和简单使用

1.首先下载DbEntry.Net安装程序。官网下载:http://dbentry.codeplex.com/releases/view/79532 金山网盘:http://www.kuaipan.cn/file/id_226427209806521434.htm?source=1

  安装之后,打开VS,工具→扩展管理器→已安装的扩展→模板,启用DbEntryClassLibrary.

  如果不希望安装模板可以下载bin.zip。官网下载:http://dbentry.codeplex.com/releases/view/79532 金山网盘:http://www.kuaipan.cn/file/id_226427209806521433.htm?source=1

2.新建项目,点击Visual C#,选择DbEntryClassLibrary,输入项目名确定。会默认创建一个User类。删除我们创建个Student类。

  未安装模板需要引用dll:Lephone.Core.dll Lephone.Data.dll Lephone.Extra.dll Lephone.Web.dll

    public class Student : DbObjectModel<Student>
    {
        public string StuName { get; set; }
        public int StuAge { get; set; }
    }

 

3.新建Winform项目,添加对DbEntryClassLibrary项目引用。

  添加app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="Lephone.Settings"
      type="Lephone.Core.Setting.NameValueSectionHandler, Lephone.Core" />
  </configSections>
 
  <Lephone.Settings>
    <add key="AutoCreateTable" value="true" />
    <add key="DataBase" value="@Access : @C:\test.mdb" />
  </Lephone.Settings>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>
XML Code

  新建窗体。一个DataGridView,两个TextBox,两个Button。DataGridView新建三个Column。

  

  窗体Load事件加载:

        private void Form1_Load(object sender, EventArgs e)
        {
            RefreshData();
        }

        /// <summary>
        /// 刷新数据
        /// </summary>
        private void RefreshData()
        {
            dataGridView1.DataSource = Student.Find(Condition.Empty);
        }

  保存按钮:

  /// <summary>
        /// 保存事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (btnSave.Tag != null && btnSave.Tag.ToString() != String.Empty)
            {
                Student stu = Student.FindById(int.Parse(btnSave.Tag.ToString()));
                int age = 0; int.TryParse(txtStuAge.Text, out age);
                stu.StuAge = age;
                stu.StuName = txtStuName.Text;
                DbEntry.Save(stu);
            }
            else
            {
                int age = 0; int.TryParse(txtStuAge.Text, out age);
                Student stu = new Student() { StuAge = age, StuName = txtStuName.Text };
                DbEntry.Save(stu);
            }
            RefreshData();
        }

  选择行事件:

  /// <summary>
        /// 选择行事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                DataGridViewRow dr = this.dataGridView1.Rows[e.RowIndex];
                btnSave.Tag = dr.Cells["ID"].Value;
                txtStuName.Text = dr.Cells["Name"].Value.ToString();
                txtStuAge.Text = dr.Cells["Age"].Value.ToString();
            }
        }

删除按钮事件:

    /// <summary>
        /// 删除代码
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (btnSave.Tag != null && btnSave.Tag.ToString() != String.Empty)
            {
                Student.DeleteBy(t => t.Id == int.Parse(btnSave.Tag.ToString()));
            }
            RefreshData();
        }

 

源代码下载:金山网盘:http://www.kuaipan.cn/file/id_226427209806521436.htm?source=1

 

转载于:https://www.cnblogs.com/xcong/p/3602311.html

DbEntry.Net是作者(梁利锋)设计的一个轻量级的 .Net ORM (Object Relational Mapping) 数据访问及 WEB 框架。对于 ORM Sql 调用,它都拥有清晰易用的 接口,目前支持 SqlServer、SQLite、MySql、Access、Firebird、Oracle 等数据库。对于 WEB 开发,它既支持 ASP.NET 2.0 的 DataSource 方 式,也支持 Ruby On Rails 风格的 MVC 方式。   目前,数据库部分已经支持多主键、多表联合查询、快速分页集合、 隐式数据库事务、连贯API查询、ActiveRecord风格查询、动态对象、部 分保存、自动创建数据表、一对一、一对多、多对多关系等功能,具体 实现请参阅 Samples 中的例子程序单元测试的内容。   而 DataSource 部分,因为绑定数据访问组件,所以可以只需要修 改配置文件,不需要修改任何代码的在不同的数据之间切换。另外,还支 持按命名约定的方式绑定“新建”“编辑”页面的控件,以最少的代码 完成输入、验证、保存等一系列操作。   Rails 风格的 MVC 框架目前已经完成 MVC 部分,脚手架,基类中 的 LinkTo、UrlTo 等快捷函数,Http Get 支持等。目前脚手架部分没有 数据验证模块,不过,自己写的 MVC 代码可以自行实现验证。   这个版本中,例子程序访问的数据库主要是 Access,而单元测试使 用的数据库是 SQLite,通过修改配置文件中数据源部分,可以使之不需 要重新编译即可工作于其它数据库上。配置部分通过 App.config 进行, 请参阅 Samples 中的例子程序中的 App.config UnitTest 项目内嵌 的配置文件 UnitTest.config.xml 。   作者在 MS Sql Server 2000、MS Sql Server 2005 Express、 MS Access 2003、MySql 5.0、SQLite 3、Firebird 2.0.3 Oracle 10g Express 上测试过本组件。   v0.33 版比较大的改变为:   ·支持移除一对多、多对多关系   ·支持 Firebird、Oracle   ·增加缓存系统   ·支持 SoftDelete、CreatedOn、UpdatedOn   ·支持 ASP.NET 2.0 Membership 系统   ·DataSource 支持“新建”“编辑”页面   ·Rails 风格 MVC 框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值