博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Entity Framework 之三层架构
阅读量:5926 次
发布时间:2019-06-19

本文共 3213 字,大约阅读时间需要 10 分钟。

今天,我们谈一下如何用Entity Framework构建一个三层架构。即包括DAL层,BLL层和MODEL层。我们先看一下目录结构,如下图:

                                                                              

目录中,我们有Web层,AVON.DMS.Model是实体层,AVON.DMS.DAL是数据访问层,AVON.DMS.BLL是业务逻辑层.

下面,我们来看看怎么把三层分出来。

首先,我们先新建项目文件,并创建Web层。如下图:

                                                                            

新建AVON.DMS.Model 类库,AVON.DMS.DAL 类库,AVON.DMS.BLL 类库:

                                                                          

此类库主要引入数据库表。因为我用的是Oracle数据库,所以,你还得安装.NET访问Oracle的ODAC组件。

下载地址:

安装完成之后,我们来在AVON.DMS.Model新增一个ADO.NET 实体数据模型,如下图:

                        

点击 Add, 下一步:

                                               

下一步:

                                              

选择数据库并输入账号和密码:

                                                       

测试连接:

                                                        

下一步:

                                                      

下一步:

                                                    

点击 "Finish"之后,会自动生成Entity Framework框架的文件,如下图,我们看一下目录结构:

                                                     

如图:箭头1是数据库层访问代码,箭头2是自动生成的实体类。

下一步,我们要把箭头1的代码层移到AVON.DMS.DAL层,如下图:

                                                                  

但是,保存之后,DMSModel.Context.cs里面并没有生成代码。先别急,我们修改一下DMSModel.Context.tt文件中DMSModel.edmx的路径,如下:

                                                        

再引用EntityFramework.dll,AVON.DMS.Model和System.Data.Entity。编译成功之后,基本完成了Model层和DAL层的分离。

另外,需要把AVON.DMS.Model层中App.config的连接字符串拷贝到Web层。

 

下面,我们来编写基本的CRUD(增删查改)代码:(备注:由于作者使用的Oracle数据库表没有设置主键,所以要对DMSModel.edmx文件进行修改,可以查看另一篇文章)

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using AVON.DMS.Model;namespace AVON.DMS.DAL{    public class RepDAL    {        Entities DMSDAL = new Entities();        ///         /// 添加会员        ///         /// 会员实体        /// 
public bool AddtoRep(REP rep) { try { DMSDAL.REP.Add(rep); DMSDAL.SaveChanges(); } catch (Exception) { return false; } return true; } /// /// 根据会员编号删除会员 /// /// 会员编号 ///
public bool DeleteRep(string repNo) { try { REP delRep = DMSDAL.REP.First
(o => o.NO == repNo); DMSDAL.REP.Remove(delRep); DMSDAL.SaveChanges(); } catch (Exception) { return false; } return true; } ///
/// 根据会员编号返回会员实体 /// ///
会员编号 ///
public REP GetFromRep(string repNo) { try { return DMSDAL.REP.SingleOrDefault
(t => t.NO == repNo); } catch (Exception) { return null; } } ///
/// 更新实体 /// ///
实体 ///
public bool UpdateRep(REP rep) { try { REP upRep = DMSDAL.REP.First
(o => o.NO == rep.NO); upRep.ADDRESS1 = rep.ADDRESS1; upRep.BIRTHDAY = rep.BIRTHDAY; upRep.DELIVER = rep.DELIVER; upRep.MAIL_NO = rep.MAIL_NO; DMSDAL.SaveChanges(); } catch (Exception) { return false; } return true; } }}

以上是在AVON.DMS.DAL中添加的代码,可以作为数据库层的代码。而业务逻辑代码可以编写在AVON.DMS.BLL层。

源代码可以在这里下载:

Entity Framework 是微软基于ADO.NET的ORM框架,Entity Framework的主要特点:

1. 支持多种数据库(Microsoft SQL Server, Oracle, and DB2);
2. 强劲的映射引擎,能很好地支持存储过程;
3. 提供Visual Studio集成工具,进行可视化操作;
4. 能够与ASP.NET, WPF, WCF, WCF Data Services进行很好的集成。

以上是一篇简单的入门介绍,希望能对您有所帮助,O(∩_∩)O哈哈~

转载于:https://www.cnblogs.com/JinvidLiang/p/4660085.html

你可能感兴趣的文章
Java Web中实现Servlet的方式
查看>>
第三方库之 - SVProgressHUD
查看>>
11个让你吃惊的 Linux 终端命令
查看>>
# 180111php编译错误
查看>>
js闭包
查看>>
度量时间差
查看>>
网络营销与电子商务
查看>>
MySQL 5.6为什么关闭元数据统计信息自动更新&统计信息收集源代码探索
查看>>
apache prefork模式优化错误
查看>>
jmeter高级用法例子,如何扩展自定义函数
查看>>
lvs
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
JS页面刷新保持数据不丢失
查看>>
清橙A1202&Bzoj2201:彩色圆环
查看>>
使用data pump工具的准备
查看>>
springMVC---级联属性
查看>>
get和post区别
查看>>
项目总结26:java调用webservice接口(asmx)
查看>>
crontab执行shell脚本日志中出现乱码
查看>>
打造自己博客(wordpress)的wap手机版本
查看>>