C# 在EF core中将实体用作json对象
我有下面的模型结构C# 在EF core中将实体用作json对象,c#,entity-framework,.net-core,ef-code-first,ef-core-3.0,C#,Entity Framework,.net Core,Ef Code First,Ef Core 3.0,我有下面的模型结构 public class A621 { public Guid? AirflowSource { get; set; } public string AirflowSourceName { get; set; } public string Category { get; set; } } public class A170 { public Guid? AirflowSource { get; set; } public stri
public class A621
{
public Guid? AirflowSource { get; set; }
public string AirflowSourceName { get; set; }
public string Category { get; set; }
}
public class A170
{
public Guid? AirflowSource { get; set; }
public string AirflowSourceName { get; set; }
}
我在如下实体中使用上述模型
public class MechanicalData
{
public List<A621> A621 { get; private set; }
public List<A170> A170 { get; private set; }
public List<Lab> Lab { get; private set; }
}
public class MechanicalTypeData
{
public MechanicalData MechanicalData { get; set; }
}
public class SpaceType : IAEIMaster, IRevisionData
{
[Column(TypeName = "jsonb")]
public MechanicalTypeData MechanicalTypeData { get; set; }
public string Note { get; set; }
public bool IsApproved { get; set; }
}
公共类机械数据
{
公共列表A621{get;private set;}
公共列表A170{get;private set;}
公共列表实验室{get;private set;}
}
公共类MechanicalTypeData
{
公共MechanicalData MechanicalData{get;set;}
}
公共类空间类型:IaeMaster、IRevisionData
{
[列(TypeName=“jsonb”)]
公共MechanicalTypeData MechanicalTypeData{get;set;}
公共字符串注释{get;set;}
公共布尔值已批准{get;set;}
}
您可以看到,我在spacetype
实体中将该实体MechanicalTypeData
用作json列,这些实体A621
和A170
是MechanicalData
的子实体
现在我想使用A621
和A170
作为一个单独的查找表,它们将真正存在于数据库中。我在创建表时使用EF核心代码优先的方法
我的问题是,我可以使用A621
和A170
来实现这两个目的吗?我指的是作为单独的查找表和将子对象添加到json中,子对象将作为json对象列在列中
有谁能为这一点或其他更好的方法提供一些启示呢。
提前非常感谢如果您需要更多关于向json添加子对象的信息,请告知我,这些子对象将作为SpaceType的json对象放置在列中-因此您需要一个字符串,该字符串将以json格式保存到1 table.column中,并带有这些属性?是的,如果您看到
spacetype
实体,我使用MechanicalTypeData
作为json列,数据来自MechanicalData
,并且该实体内部连接到A170
和A621
,则可以在spacetype中使用字符串属性,然后用Newtonsoft序列化A170或A621对象->字符串,并将其保存到数据列中。您可以使用EF核心值转换将集合存储在JSON列中。