c# - 将 Entity Framework EDMX 类移动到单独的数据层 DLL

标签 c# entity-framework

我已经开始工作和学习 Entity Framework 。以前,在处理数据访问时,我总是尝试将它保存在一个单独的 DLL 中,试图分离我的关注点并防止数据模型类被拖入表示层。

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

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

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

编辑 这是我得到的错误:

Unable to load the specified metadata resource.

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

最佳答案

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

将数据访问 EF 文件保存在单独的程序集中或在 Web 服务后面的情况并不少见。尽管是否允许直接公开 POCO(模型)是一个偏好问题。

关于c# - 将 Entity Framework EDMX 类移动到单独的数据层 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18867633/

相关文章:

c# - 通过接口(interface)获取 DbContext Set<T>

c# - 程序运行时更改了 Dns 设置

c# - double.NaN MS 测试中的相等性

c# - .net 中 string.Format (".... {0}....{1}....",v1,v2) 的替代品?

c# - 从自然数中选择一个数 < n 排除一种可能性

c# - 如何传递要包含在 URL 中的参数?

sql-server - WEB API 2 IQueryable 查询

c# - 仅使一列可排序的最简单方法

entity-framework - Entity Framework 5 选择时排除属性

c# - EDF 4.1 代码优先的接口(interface)和多重约束违规