Относительно простая задача... Мне нужно извлечь данные из базы данных и экспортировать их в файл CSV. Проблема в том, что данные запрашиваются из нескольких объединенных таблиц, и я не уверен, как лучше всего получить данные с помощью EF и сериализовать их.
Мой SQL-запрос:
select o.product, o.invoicenr, o.amount as quantity, o.price, o.shipping, o.vatrate, o.datecreated, os.title as [orderstatus],ps.title as [paymentstatus], pm.title as [paymentmethod], o.datepaid, o.dateinvoice,
c.*, a.*,
oos.trackingcode, oos.courier, oos.datecreated as [orderstatusdate],
p.amout, p.transactionIdentifier, p.comment, p.datecreated as [paymentcreated]
from [order] o
inner join Address a
on o.shipingaddressId = a.id
inner join Customer c
on o.customerId = c.id
inner join OrderOrderStatus oos
inner join OrderStatus os
on oos.orderstatusId = os.id
on o.id = oos.orderID
inner join Payment p
inner join PaymentStatus ps
on p.paymentstatusId = ps.id
inner join PaymentMethod pm
on p.paymentmethodId = pm.id
on o.id = p.orderId
order by o.datecreated, o.id
В совокупности должно быть возвращено 44 столбца.
Как я могу воспроизвести этот запрос с помощью LINQ? Каков наилучший способ приступить к этой задаче в целом?
Просто для понимания: есть основная таблица «Заказ», которая связана один ко многим с таблицами «Адрес», «Клиент», «Статус заказа» и «Оплата». Таблица Payment имеет отношение "один ко многим" с PaymentStatus и PaymentMethod. Таблица OrderOrderStatus имеет связь "один ко многим" с OrderStatus.
Спасибо!