说明:以下例子采用的是DB first的模式

在之前的webform开发模式中我们习惯性性的会建立这样的一些类库:Model、DAL、BLL。。。但是在用了EF以后,我们创建的ADO.NET实体数据模型会默认的将实体类和对数据库的操作放在一起,这样会带来一个问题,就是当我们在应用层需要使用实体类的时候对数据库的操作也会直接暴露出来,由于学习ef不久,所以这个问题困扰了我很久,今天在博客园看了大虾的文章才明白原来微软早就预料到这个问题了。http://www.cnblogs.com/fangrobert/archive/2011/08/22/2150048.html

步骤一:

新建项目和各个类库

BLL:业务逻辑层

Model:实体

StatDataAccess:数据访问层

mvc3App:应用层

步骤二:

在StatDataAccess中新建ADO.NET Entity数据访问实体(XXX.edmx),双击打开XXX.edmx,右键“添加代码生成项”,选择”ADO.NET 自动跟踪实体生成器“,会生成两个T4模板文件Model1.tt和Model1.Context.tt

步骤三:将Model1.tt和XXX.edmx拷贝一份到Model类库项目中,右键运行Model1.tt生成实体类后,将Model类库中的XXX.edmx删除(注:如果数据库有更新再从StatDataAccess拷贝一份XXX.edmx过来再运行Model1.tt就是了)

步骤四:修改StatDataAccess项目中的T4文件Model1.Context.tt添加引用using Model;这样在生成数据操作类的时候才能找到实体类。打开XXX.edmx,右键-属性:代码生成策略由默认改为无(不进行此操作的话edmx还是会生成实体类)。

各项目的引用关系:

StatDataAccess项目引用Model

BLL项目引用Model和StatDataAccess

mvc3App引用BLL和Model

 

 

原文地址;http://hi.baidu.com/yyq745201/item/44ca14377d8da2bb124b1457

Entity Framework只entity与DbContext的分离的更多相关文章

  1. Entity Framework Core系列之DbContext(修改)

    上一篇我们介绍了Entity Framework Core系列之DbContext(添加),这一篇我们介绍下修改数据 修改实体的方法取决于context是否正在跟踪需要修改的实体. 下面的示例中实体由 ...

  2. Entity Framework Core系列之DbContext(删除)

    上一篇我们介绍了Entity Framework Core系列之DbContext(修改),这一篇我们介绍下删除数据 修改实体的方法取决于context是否正在跟踪需要删除的实体. 下面的示例中con ...

  3. Entity Framework Core系列之DbContext(添加)

    上一篇我们介绍了Entity Framework Core系列之DbContext,对DbContext有了概念上的了解,这篇将介绍DbContext添加数据 通过DbContext添加实体的主要方法 ...

  4. Entity Framework Core系列之DbContext

    前言: EF Core DbContext表示与数据库的会话,并提供与数据库通信的API,具有以下功能: 数据库连接 数据操作,如查询和持久化 更改追踪 模型构建 数据映射 对象缓存 事务管理 数据库 ...

  5. Newtonsoft.Json高级用法,json序列号,model反序列化,支持序列化和反序列化DataTable,DataSet,Entity Framework和Entity,字符串

    原文地址:https://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口 ...

  6. [Entity Framework] MySQL @ Entity Framework 6

    原文 [Entity Framework] MySQL @ Entity Framework 6 要让MySQL能够用EF6,我花了一点时间,在此记录一下 安装元件 在设定档加入Provider 安装 ...

  7. Entity Framework Code First使用DbContext查询

    DbContext.DbSet及DbQuery是Entity Framework Code First引入的3个新的类,其中DbContext用于保持数据库会话连接,实体变化跟踪及保存,DbSet用于 ...

  8. 【Entity Framework】 Entity Framework资料汇总

    Fluent API : http://social.msdn.microsoft.com/Search/zh-CN?query=Fluent%20API&Refinement=95& ...

  9. Entity Framework 教程——Entity Framework中的实体类型

    Entity Framework中的实体类型 : 在之前的章节中我们介绍过从已有的数据库中创建EDM,它包含数据库中每个表所对应的实体.在EF 5.0/6.0中,存在POCO 实体和动态代理实体两种. ...

随机推荐

  1. 生成Apk遇到的问题

    conversion to dalvik format failed with error 1 android proguard keep Parameterized class

  2. hdu 2078

    ps:超水题....(a+b)^2>=a^2+b^2...刚开始还想了好久...真佩服自己.. #include "stdio.h" #define min1(a,b) a& ...

  3. 2016 -1 - 3 省市联动demo

    #import "ViewController.h" #import "CZProvinces.h" @interface ViewController ()& ...

  4. 嵌入式 -- WINKHUB 边信道攻击 (NAND Glitch)

    0x00 前言 随着物联网IOT的飞速发展,各类嵌入式设备, 路由器安全研究也越来越火. 但因为跟以往纯软件安全研究的要求不同, 这类研究往往需要结合相应的硬件知识. 很多朋友困惑如何开始, 甚至卡在 ...

  5. Python 安全类目推荐 (持续更新)

    推荐学习书目 › Learn Python the Hard Way › Python 学习手册 › Python Cookbook › Python 基础教程 Python Sites › PyPI ...

  6. 数据结构《14》----并查集 Union-Find

    描述: 并查集是一种描述解决等价关系.能够方便地描述不相交的多个集合. 支持如下操作    1. 建立包含元素 x 的集合  MakeSet(x) 2. 查找给定元素所在的集合 Find(x), 返回 ...

  7. 转载 javascript中的正则表达式总结 一

    定义正则表达式的方法 定义正则表达式的方法有两种:构造函数定义和正则表达式直接量定义.例如: var reg1 = new RegExp('\d{5, 11}'); // 通过构造函数定义 var r ...

  8. HDU 5828(线段树)

    Problem Rikka with Sequence 题目大意 维护一个序列,支持三种操作. 操作1:区间加. 操作二:区间开根号(向下取整). 操作3:区间求和. 解题分析 可以发现经过若干次操作 ...

  9. 第一次进div1了

    第一次进div1~好激动啊! 上帝依旧那么眷顾我!

  10. FSM

    一.状态机简单介绍 软件设计中的状态机概念,一般是指有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和 ...