如何将依赖关系注入与 EF 结合使用,以解析具有接口泛型类型的数据库集

本文关键字:接口 数据库 泛型类型 关系 依赖 注入 结合 EF | 更新日期: 2023-09-27 18:31:58

我正在尝试在实体框架 (EF) 7 中实现一个基于运行时注入的接口的 DbSet,我不确定如何做到这一点。 例如:

internal class DataContext : DbContext
{
    internal DbSet<IUser> Users { get; set; }
}

当我从我的应用程序查询此内容时,我希望将 IUser 解析为我的域"User"对象并返回。 当我尝试这样做时,我收到一个错误,说:

"为参数'IUser'提供的实体类型'value'必须是引用类型",位于Microsoft.Data.Entity.Utilities.Check.ValidEntityType(Type value,String parameterName)。

不确定我试图做的事情是否可能。 我已经阅读了其他相关问题的答案,这些答案基本上表明您不应该抽象您的实体,虽然这可能是真的,但我只是想弄清楚是否有办法使用 EF 完成此操作。

如何将依赖关系注入与 EF 结合使用,以解析具有接口泛型类型的数据库集

看起来这在 EF7 中是不可能的,但在 EF7 的用户语音中是一个高度要求的功能(事实上,他们已经在他们的问题列表中指出它将被添加,但只是没有及时用于 RTM)。

用户之声

Github问题