Я хочу сохранить объект, содержащий список примитивов с использованием EF.
public class MyObject {
public int Id {get;set;}
public virtual IList<int> Numbers {get;set;}
}
Я знаю, что EF не может хранить, но я хотел бы знать возможные решения для решения этой проблемы.
2 решения, о которых я могу думать, следующие:
1. Создайте объект Dummy, у которого есть Id и Integervalue, например
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. Сохранять значения списка как blob, например
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 для отслеживания, если кто-то изменяет возвращенную коллекцию.
Есть ли лучшее решение для этого?