将实体框架EDMX类移动到单独的数据层DLL中

时间:2013-09-18 08:45:45

标签: c# entity-framework

我已经开始工作并学习有关实体框架的知识。以前,在处理数据访问时,我总是尝试将其保存在单独的DLL中,尝试将我的问题分开,并防止数据模型类被拖入表示层。

现在,当我创建一个EDMX文件时,它进入主项目,当我将它们和相关代码移动到数据DLL中时,当我运行解决方案时编译时,实体构造函数中抛出了一个错误,或者更确切地说是ObjectContext类中的基础构造函数。

是否有可能实现这种完全分离?

我看到了this question which appears to be related但是看到的评论似乎只有部分分离。

修改 这是我得到的错误:

Unable to load the specified metadata resource.

found this answer所以我会看看是否能解决我的问题。

1 个答案:

答案 0 :(得分:6)

只需重新 - 在其他程序集中创建edmx文件,而不是复制它。只要知道使用该程序集的任何程序集/程序都需要让其app或web配置文件包含与edmx的app配置文件中创建的名称相同的数据库连接字符串。

将数据访问EF文件保存在单独的程序集中或Web服务后面并不罕见。虽然优先考虑是否允许POCO(模型)直接暴露。