界面作为 EntityFramework 核心中的字段
Interface as field in EntityFramework Core
有没有办法在 EF Core(CodeFirst,最新版本 5.0)中将接口用作 class 的字段?
说
public class Order
{
public int Id { get; set;}
public IUser CreatedBy { get; set; }
}
您可以使用 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 实例,就可以使用这种方式。
有没有办法在 EF Core(CodeFirst,最新版本 5.0)中将接口用作 class 的字段?
说
public class Order
{
public int Id { get; set;}
public IUser CreatedBy { get; set; }
}
您可以使用 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 实例,就可以使用这种方式。