实体框架代码第一个原始集合

时间:2011-08-29 22:14:07

标签: entity-framework-4.1

鉴于以下简单场景,保持原始简单集合的最佳/简单方法是什么?

public class Subscriber
{
    public int Id { get; set; }
    public string Email { get; set; }
    public ICollection<int> SubscribedNodeIds { get; set; }
}

如果我执行上面的例子,则忽略SubscribedNodeIds列。

2 个答案:

答案 0 :(得分:0)

显而易见的答案是建立这样的关系:

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; }
}

答案 1 :(得分:0)

创建新的实体和关系是一项艰巨的工作。相反,我们可以执行以下简单的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);                    
            }
        }
    }
}