Entity Framework Code Первые примитивные коллекции - PullRequest
2 голосов
/ 30 августа 2011

Учитывая следующий простой сценарий, каков наилучший / простой способ сохранения простой коллекции примитивов?

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

Если я выполняю приведенный выше пример, столбец SubscribeedNodeIds игнорируется.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Создание новой сущности и отношений - кропотливая работа.Вместо этого мы можем выполнить следующие два простых шага:

Аннотировать поле коллекции с помощью [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);                    
            }
        }
    }
}
0 голосов
/ 30 августа 2011

Очевидный ответ - создать отношения следующим образом:

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; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...