首页 > 解决方案 > 作为 EntityFramework Core 中的字段的接口

问题描述

有没有办法将接口用作 EF Core 中的类的字段(CodeFirst,最后一个版本到第 5.0 天)?

public class Order
{
   public int Id { get; set;}
   public IUser CreatedBy { get; set; }
}

标签: c#entity-framework.net-coreentity-framework-coreef-core-5.0

解决方案


您可以使用 db 中不存在的导航属性接口。但是对于 Db 列,您需要具体的类。

在您的情况下,您有两种方法:

public class Order
{
[Key]
   public int Id { get; set;}
[ForeignKey]
   public int UserId CreatedBy { get; set; }
}

这样您就可以将 UserId 保存到 Db 并重用它。这种方式是首选。

另一种方式 :

public class Order
{
   [Key]
   public int Id { get; set;}
   [NotMapped]
   public IUser CreatedBy { get; set; }
}

但是只要内存中存在 Order 实例,就可以使用这种方式 IUser。


推荐阅读