【发布时间】:2018-06-10 06:11:52
【问题描述】:
我需要将 JSON 对象转换为实体, 我有很多实体,有时我不想编写代码,所以我构建了一个实体基类,我想对实体进行反序列化(不知道哪个派生实体调用基实体)。
我可以吗?
这是我的基类(它是抽象类)
public abstract class AbstractEntity
{
EntityState EntityState { get; set; }
DateTime CreatedDate { get; set; }
DateTime? ModifiedDate { get; set; }
string CreatedBy { get; set; }
string ModifiedBy { get; set; }
public EntityState getEntityState()
{
return EntityState;
}
public void SetEntityState(EntityState entityState)
{
EntityState = entityState;
}
}
第一个条目:
public class TABLE1: AbstractEntity
{
public TABLE1();
public string ID{ get; set; }
public string ADDRESS{ get; set; }
public virtual ICollection<TABLE2> TABLE2 { get; set; }
}
第二个词:
public class TABLE2: AbstractEntity
{
public TABLE2();
public string ID{ get; set; }
public string ADDRESS{ get; set; }
public virtual TABLE1 TABLE1{ get; set; }
}
【问题讨论】:
-
链接中的示例是通用转换吗?基类不知道实体名称
-
抱歉不接受,答案中的地图依赖于布尔属性,而不是与超过 2 个实体无关。
-
@user1012506 - Deserializing polymorphic json classes without type information using json.net 的基本思想是创建一个
JsonConverter,将每个AbstractEntity的 JSON 预加载到JToken中,然后通过检查是否存在来选择适当的子类型和适当属性的值。有关此类的其他示例,请参见 Json Array to Custom Object Mapping in C# 和 JsonConverter with Interface。
标签: c# json asp.net-mvc entity-framework-6