我已经开始工作并学习有关实体框架的知识。以前,在处理数据访问时,我总是尝试将其保存在单独的DLL中,尝试将我的问题分开,并防止数据模型类被拖入表示层。
现在,当我创建一个EDMX文件时,它进入主项目,当我将它们和相关代码移动到数据DLL中时,当我运行解决方案时编译时,实体构造函数中抛出了一个错误,或者更确切地说是ObjectContext类中的基础构造函数。
是否有可能实现这种完全分离?
我看到了this question which appears to be related但是看到的评论似乎只有部分分离。
修改 这是我得到的错误:
Unable to load the specified metadata resource.
我found this answer所以我会看看是否能解决我的问题。
答案 0 :(得分:6)
只需重新 - 在其他程序集中创建edmx文件,而不是复制它。只要知道使用该程序集的任何程序集/程序都需要让其app或web配置文件包含与edmx的app配置文件中创建的名称相同的数据库连接字符串。
将数据访问EF文件保存在单独的程序集中或Web服务后面并不罕见。虽然优先考虑是否允许POCO(模型)直接暴露。