【发布时间】:2020-01-27 03:00:08
【问题描述】:
我关注了documentation on Postgres C# website。
当我运行这段代码时,我得到:
实体类型“Bar”需要定义一个主键。
POCO:
public class Foo
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
[Column(TypeName = "jsonb")]
public Bar Bar { get; set; }
}
public class Bar
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
我的目标是避免使用string 作为 Bar 的属性类型,让实体框架处理 JSON 序列化、反序列化。我不希望 Bar 成为单独的表。我希望它是 Foo 上的 JSON 列。
【问题讨论】:
-
我很确定 Entity Framework 在每个表上都需要一个主键(身份)。 (stackoverflow.com/questions/3996782/…)
-
但我希望它是一个 json 并且我不希望
Bar成为另一个表 -
即使它不在数据库中,它仍然需要一个主键作为 POCO 的属性 (stackoverflow.com/questions/43503424/…)
-
我添加了 ID,它为
Bar创建了一个新表。我不想要Bar的新表。我想使用 json 列 -
@NodeJs 查看下面的答案
标签: c# .net-core entity-framework-core