我可以将接口用作实体框架的属性吗?

Eli*_*lin 6 entity-framework-core

我有以下类,它是数据库表的模型:

public class User : IUser
{
    internal int Id { get; set; }

    public string Name { get; set; }
    public string Email { get; set; }

    public ITest TestData { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我运行Update-Database命令时,它抛出一个错误:

该属性User.TestData属于接口类型 ( ITest)。如果它是导航属性,则通过将其转换为映射实体类型来手动配置此属性的关系

如果我不希望实际属性是一个类,我如何以及在哪里可以手动配置此属性的关系?

小智 5

EF 不支持接口,但您可以通过这种方式处理它。看看这个解决方案How to use interface properties with CodeFirst

  • 请注意,这个问题指的是实体框架核心,而不是实体框架。这同样适用于那里吗? (4认同)