powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Загрузка в DataTable из двух таблиц DataTable с помощью Linq
3 сообщений из 3, страница 1 из 1
Загрузка в DataTable из двух таблиц DataTable с помощью Linq
    #39494273
serega82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Создаю по примеру https://msdn.microsoft.com/ru-ru/library/bb386921(v=vs.110).aspx у меня выдает ошибку
"Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка CS0311 Тип "<anonymous type: int SalesOrderID, int SalesOrderDetailID, System.DateTime OrderDate, int ProductID>" не может быть использован как параметр типа "T" в универсальном типе или методе "DataTableExtensions.CopyToDataTable<T>(IEnumerable<T>)". Нет преобразования неявной ссылки из "<anonymous type: int SalesOrderID, int SalesOrderDetailID, System.DateTime OrderDate, int ProductID>" в "System.Data.DataRow"".

Что я делаю неправильно?

DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);

DataTable orders = ds.Tables["SalesOrderHeader"];
DataTable details = ds.Tables["SalesOrderDetail"];

var query =
from order in orders.AsEnumerable()
join detail in details.AsEnumerable()
on order.Field<int>("SalesOrderID") equals
detail.Field<int>("SalesOrderID")
where order.Field<bool>("OnlineOrderFlag") == true
&& order.Field<DateTime>("OrderDate").Month == 8
select new
{
SalesOrderID =
order.Field<int>("SalesOrderID"),
SalesOrderDetailID =
detail.Field<int>("SalesOrderDetailID"),
OrderDate =
order.Field<DateTime>("OrderDate"),
ProductID =
detail.Field<int>("ProductID")
};

DataTable orderTable = query.CopyToDataTable();
...
Рейтинг: 0 / 0
Загрузка в DataTable из двух таблиц DataTable с помощью Linq
    #39494275
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Загрузка в DataTable из двух таблиц DataTable с помощью Linq
    #39494286
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serega82,

Так join сделать нельзя. Поэтому всё делаешь неправильно, тебе придётся сначала сделать типа такого:

Код: c#
1.
2.
var orderQuery = orders.AsEnumerable().Select(p => new {SalesOrderID = p.Field<int>("SalesOrderID"), ...});
var detailQuery = details.AsEnumerable().Select(p => new {SalesOrderID = p.Field<int>("SalesOrderID"), ...});



Потом только уже делать join:

Код: c#
1.
2.
3.
4.
from order in orderQuery
join detail in detailQuery
on order.SalesOrderID equals detail.SalesOrderID
...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Загрузка в DataTable из двух таблиц DataTable с помощью Linq
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]