1.分层
2.项目依赖关系
MODEL
IDAL -> MODEL
DAL -> IDAL,MODEL,EntityFramewrok(注意和MODEL里的版本要一致),System.Data.Entity
IBLL -> IDAL,MODEL
BLL -> IBLL,IDAL,MODEL,DI
Controller -> IBLL,MODEL,DI
Web -> Controller,MODEL
3.T4模版生成业务层和数据层接口
<#@template language="C#" debug="false" hostspecific="true"#> <#@include file="EF.Utility.CS.ttinclude"#><#@ output extension=".cs"#> <# CodeGenerationTools code = new CodeGenerationTools(this); MetadataLoader loader = new MetadataLoader(this); CodeRegion region = new CodeRegion(this, 1); MetadataTools ef = new MetadataTools(this); string inputFile = @"..\MODEL\OuOA.edmx"; EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile); string namespaceName = code.VsNamespaceSuggestion(); EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this); #> using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace IDAL { <# // Emit Entity Types foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name)) { //fileManager.StartNewFile(entity.Name + "RepositoryExt.cs"); //BeginNamespace(namespaceName, code); #> public partial interface I<#=entity.Name#>DAL : IBaseDAL<MODEL.<#=entity.Name#>> { } <#}#> }
4.为什么要用DI来解决
5.IDBSession存储属性
6.数据层仓储DBSession