ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – EF6:必须包含在启动项目中吗?

2019-07-06 14:16:30  阅读:148  来源: 互联网

标签:c entity-framework entity-framework-6


我有三个项目:持久性,逻辑和测试.

Persistence项目具有EF特定的东西. Logic项目利用Repository模式与Persistence / EF进行交互. Test项目是一个通用控制台,它调用Logic对象并检查我的EF设置是否正确.正常的东西.

为了运行它,我显然需要在Test项目上安装EF(我需要将我的App.Config从EF类lib项目移动/复制到Test项目).

它很好,但是当我进入其他组件/应用程序层项目时,我不希望必须为这些直接处理EF的“入口点”包含整个EF引用.

如何将EF专门保存到其“自己的”项目中?谢谢

编辑可能的重复:可能的重复处理如何将业务逻辑与DAL分离.我的问题涉及为什么演示项目需要引用实体框架:我已经将BAL / DAL隔离并且存储库模式已经到位.

解决方法:

理想情况下,您应该将实体框架框架工作的依赖性限制为尽可能小的数量.最好的方法是仅在具有数据访问代码的层/项目中使用EF(您的数据访问层).如果您将DTO’/ POCO(由EF创建的非实体)返回给那些调用这些数据访问方法(通常来自您的业务层)的人,则会更好.您可以将此DTO保存在单独的项目中(我们称之为YourProject.Common).使用这种方法,您始终可以切换DAL层以使用其他数据访问方法(NHibernate,Pure ADO.NET等).如果您正在使用Entity框架,您仍需要在启动项目中保留Connection字符串(对于EF,以及所有这些元数据:()).

所以您的图层/项目将是这样的

>普通(将有所有的DTO / POCO)
> DataAccess(将有数据访问代码,这个参考
YourProject.Common项目并从该项目返回DTO.您不需要在此项目中保留连接字符串以供应用程序运行,因为这将始终从具有连接字符串的启动项目中调用.但是,请保持App.Config(由EF生成),因为您需要在以后更新EDMX文件以进行数据库更改.
>业务(BL层,这个项目将有2个项目参考,
共同项目和数据访问项目)
> Web / Win表单(这是您的前端/启动项目.
这不会直接与数据访问对话,这将有2
项目参考,通用和数据访问).这将有你的连接字符串.

标签:c,entity-framework,entity-framework-6
来源: https://codeday.me/bug/20190706/1397884.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有