Object Relational Mapping,简称ORM,相信大家应该都很熟悉吧,是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术。运用O/R Mapping模式去开发数据库应用可以节省大量的工作量,特别是烦琐的SQL语句编写,当然采用O/R Mapping技术也有它的缺点,事物总是不完美的吗!
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cherish58/c2d6328bfa8b40e19835d009989d2a33.jpg)
protected void Application_Start(Object sender, EventArgs e)
{
string ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["SqlConnectionString"].ToString() ;
TS.DAL.Database.ConnectionString = ConnectionString;
TS.DAL.Database.DatabaseType = TS.DAL.DatabaseType.SQLServer;
}
city ct = new city() ;
cityRow cr = ct.CreateRow() ;
cr.id = city.GetNextId("") ;
cr.cityID = this.TextBox6.Text.Trim() ;
cr.city = this.TextBox5.Text.Trim() ;
cr.father = this.TextBox4.Text.Trim() ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
ct.Save() ;
city ct = new city(Convert.ToDecimal(this.key.Text)) ;
ct[0,0].cityID = this.TextBox1.Text.Trim() ;
ct[0,0].city = this.TextBox2.Text.Trim() ;
ct[0,0].father = this.TextBox3.Text.Trim() ;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
ct.Save() ;
city ct = new city(Convert.ToDecimal(this.key.Text)) ;
cityRow cr = ct[Convert.ToDecimal(this.key.Text)] ;
ct.Delete(cr) ;
city ct = new city(Convert.ToDecimal(i)) ;
this.TextBox1.Text = ct[0,0].cityID ;
this.TextBox2.Text = ct[0,0].city ;
this.TextBox3.Text = ct[0,0].father ;
this.key.Text = ct[0,0].id.ToString() ;
doHope.Net生成器实现O/R Mapping技术同时根据项目实际因素,生成业务层与数据层的代码,为开发管理信息系统节省了大量的时间。
需要注意的是数据库表一定要有主键。
需要注意的是数据库表一定要有主键。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cherish58/c2d6328bfa8b40e19835d009989d2a33.jpg)
下面为一个测试项目的截图,采用三层架构,其中BLL与DAL层为代码自动生成。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/cherish58/43e182be3fe646c4b84f9301f3ac5f68.gif)
下面举几个简单的示例
配置Global.asax.cs(数据库连接及类型),如下
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
新增记录示例:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
修改记录示例:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
删除记录示例:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
查询读数据:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)