鉴于以下简单场景,保持简单原始集合的最佳/简单方法是什么?
public class Subscriber
{
public int Id { get; set; }
public string Email { get; set; }
public ICollection<int> SubscribedNodeIds { get; set; }
}
如果我执行上面的示例,则忽略SubscribedNodeIds列。
显而易见的答案是创建这样的关系:
public class Subscriber
{
public int Id { get; set; }
public string Email { get; set; }
public ICollection<Subscription> Subscriptions { get; set; }
}
public class Subscription
{
public int Id { get; set; }
public int NodeId { get; set; }
public Subscriber Subscriber { get; set; }
}
创建一个新的实体和关系是一项艰苦的工作。相反,我们可以执行以下简单的2个步骤
使用[NotMapped]注释集合字段,以便它不会添加到数据库中
添加字符串属性并使用Json序列化程序将基元集合转换为字符串。
代码如下
public class Subscriber
{
public int Id { get; set; }
public string Email { get; set; }
[NotMapped]`enter code here`
public ICollection<int> SubscribedNodeIds { get; set; }
public string SubscribedNodeIdsString
{
get => JsonConvert.SerializeObject(SubscribedNodeIds);
set
{
if (value != null)
{
SubscribedNodeIds = JsonConvert.DeserializeObject<List<Int>>(value);
}
}
}
}