Я использую LINQ-to-SQL для извлечения и сохранения данных с / на SQL Server.
Предположим, у меня есть пресловутая таблица Products
, в которой есть поле с именем Description
.Поле является свободным текстом и может содержать новые строки.Чтобы избежать проблем с новой строкой в Windows / Unix, я могу решить заменить "\ r \ n" на "\ n".Тем не менее, я хочу выполнить эту замену как можно раньше, в идеале именно так, как данные получены от SQL Server.Таким образом, myDataContext.Products
вернет Product
объектов, описание которых содержит только \ n.
Как я могу это сделать?
РЕДАКТИРОВАТЬ
Я знаю, что могу сделать это, позвонив Select()
.Тем не менее, я должен был бы вызывать Select()
каждый раз, когда я использую таблицу Products
.
Позвольте мне объяснить, показывая некоторый код.У меня есть DataManager
класс, который оборачивает логику чтения / записи.У него есть несколько методов, подобных этим:
public Product GetProduct(int i_id)
{
return m_database.Products.Where(p => p.Id == i_id).FirstOrDefault();
}
public Product GetProductByName(string i_name)
{
return m_database.Products.Where(p => p.Name == i_name).FirstOrDefault();
}
Здесь m_database
- это контекст данных, а Products
- это System.Data.Linq.Table
.Конечно, я мог бы позвонить Select()
в каждой из этих строк, но это было бы против DRY (не повторяй себя), и на самом деле было бы WET (напиши все дважды).Вот почему я ищу способ включить преобразование «внутрь» Products
, чтобы простой вызов m_database.Products
вернул преобразованные данные.