Я хочу сохранить объект, содержащий список примитивов, используя EF.
public class MyObject {
public int Id {get;set;}
public virtual IList<int> Numbers {get;set;}
}
Я знаю, что EF не может хранить это, но я хотел бы знать возможные решения этой проблемы.
2 решения, которые я могу придумать::
1. Создайте фиктивный объект , который имеет идентификатор и целочисленное значение, например.
public class MyObject {
public int Id {get;set;}
public virtual IList<MyInt> Numbers {get;set;}
}
public class MyInt {
public int Id {get;set;}
public int Number {get;set;}
}
2. Сохраните значения списка в виде большого двоичного объекта , например.
public class MyObject {
public int Id {get;set;}
/// use NumbersValue to persist/load the list values
public string NumbersValue {get;set;}
[NotMapped]
public virtual IList<int> Numbers {
get {
return NumbersValue.split(',');
}
set {
NumbersValue = value.ToArray().Join(",");
}
}
}
Проблема с подходом 2. заключается в том, что мне нужно создать реализацию Custom IList, чтобы отслеживать, изменяет ли кто-то возвращаемую коллекцию.
Есть ли лучшее решение для этого ?