在用EF DBFirst时,实体类是从数据库自动生成的,与DBContext放在同一个项目中。这样其他项目想引用实体,就会将数据库操作类暴露出来。所以,我们需要将实体分离。
新建项目EFAccess,并新建Ado.net实体数据模型
![](https://upload-images.jianshu.io/upload_images/2832200-d2fe9913690286d3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/254)
image.png
删除自动生成的Model1.tt
右键项目,新建EF DbContext生成器
![](https://upload-images.jianshu.io/upload_images/2832200-bb773e1962157156.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
image.png
新建项目Model,将刚生成的Model1.tt拷贝进来,删除EFAccess中的Model1.tt
![](https://upload-images.jianshu.io/upload_images/2832200-ce971b5b06f2c93d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/193)
image.png
打开Model1.tt,修改路径
![](https://upload-images.jianshu.io/upload_images/2832200-f25a738d9c4d1a0b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/459)
image.png
保存。
EFAccess项目添加对Model项目的引用,即可。