Мой вопрос: существует ли способ с отображением DataContext / Table для реализации некоторого пользовательского кода отображения между базой данных и созданием экземпляра моего объекта?
В качестве простого примера скажем, что мой класс сущности Products имеет свойство "double Length {get; set;}"
и моя сущность и весь мой существующий код ожидают, что длина будет в футах, но в базе данных длина хранится в метрах, поэтому мне нужно выполнить преобразование. Есть ли способ зарегистрировать обратный вызов или иным образом вставить некоторый код для установки объекта. Длина вручную основана на DataRow или, тем не менее, данные извлекаются изнутри L2S?
Да, я думал, что смогу установить «double LengthInMeters {set {Length = value * 0.3048;}}», но я надеялся избежать создания дублирующих свойств и внесения двусмысленности в отношении использования. Что я хотел бы сделать, так это зарегистрировать закрытие в моем DataContext для вызова после создания Продукта, чтобы я мог сказать:
DataContext.Entity<Product>().OnCreated( (p, row) =>
{
p.Length = row["Length"] * 0.3048;
p.ProductCode = row["Sku"].ToString().Substring(1, 5);
...etc..
});