Доброго времени суток! У меня возник такой вопрос. Допустим у меня есть бд, в которой есть таблицы вида:
CREATE TABLE Foo
(
Id int,
Name nvarchar(100),
BarId int
)
CREATE TABLE Bar
(
Id int,
Text nvarchar(100)
)
Причем столбец BarId в таблице Foo - это foreign key на Bar.Id. Затем я запрос вида
SELECT f., b.Id as BarId, b.Name as BarName
FROM Foo f
JOIN Bar b ON b.Id = f.BarId
Результаты этого запроса я получаю в IDataReader. Для их отображения у меня есть классы
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public Bar Bar { get; set; }
}
public class Bar
{
public int Id { get; set; }
public string Text { get; set; }
}
Для получения данных из ридера я использую Automapper. Вот так:
public class DataReaderConverter<TDto> : ITypeConverter<IDataReader, TDto> where TDto : new
{
// код этого метода немного упрощен, но в целом всё так и работает
public TDto Convert(IDataReader source, TDto destination, ResolutionContext context)
{
if (destination == null)
destination = new TDto();
typeof(TDto).GetProperties().ToList()
.ForEach(property => property.SetValue(destination, source[property.Name]));
}
}
cfg.CreateMap<IDataReader, Foo>().ConvertUsing(new DataReaderConverter<Foo>());
И тут возникает проблема. Дело в том, что если запрос обычный, без джойнов, то DataReaderConverter
вполне успешно всё маппит. Но в моём запросе есть джойн с таблицей Bar, и я не могу сопоставить свойство Bar
со столбцами BarId
и BarName
, Есть ли какая-то возможность заставить Automapper понимать, как нужно маппить свойства-классы из столбцов ридера?
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Нужно отправить POST запрос с параметрами и прочитать html в ответеВот мой метод :
Нужно сделать программу которая показывает: на сколько каждый процесс использует сеть и на какой ИП он отправляет данныеТак сказать аналог...
Доброго дня всем! Очень интересует как поместить внутрь DataGrid несколько TextBox'ов или ComboBox'ов, что бы по ним совершать поиск по строкам или запрос...