Сначала я работаю с Entity Framework Code.У меня есть простая модель:
public class Variable
{
public string Name { get; set; }
public int Id { get; set; }
public IList<string> TextOptions
{
get;
set;
}
}
Я столкнулся с проблемами со свойством TextOptions
типа List<String>
.
Когда я пытаюсь сделать это в Entity Framework, он делаетне карта.
Я нашел здесь решение (stackoverflow), которое решает мою проблему.Я в основном переделываю свой класс так, чтобы он взял список и сделал его разделенной строкой, которая вместо этого сохраняется:
public class Variable : IVariable
{
public string Name { get; set; }
public int Id { get; set; }
public virtual IList<string> TextOptions
{
get
{
return _TextOptions;
}
set
{
_TextOptions = value;
}
}
private IList<string> _TextOptions;
public string TextOptionsSerialized
{
get
{
return String.Join(";", _TextOptions);
}
set
{
_TextOptions = value.Split(new char[]{';'}, StringSplitOptions.RemoveEmptyEntries).ToList();
}
}
}
Этот код работает нормально.Проблема, которую я имею с этим, состоит в том, что я думаю, что это нарушает Разделение Концерна.Я не думаю, что мой модельный класс должен заниматься сериализацией списка строк, чтобы платформа Entity могла его сохранить.
Я столкнулся с аналогичной проблемой, работая в ASP.Net MVC.Мне отправили сообщение от клиента, которое будет сопоставлено с моделью.Были некоторые проблемы с тем, как модель была структурирована по сравнению с постом.В MVC я мог бы написать пользовательский связыватель модели, чтобы обработать преобразование очень безопасным и многократно используемым способом.
Есть ли ЛЮБОЙ способ сделать это для Entity Framework, который так же чист, как пользовательские связыватели моделей для MVC?