У меня есть набор данных с таблицей данных datatable, содержащей столбцы
PlantId, PlantName, OrderWeek, SupplierId, SupplierName, GroupId, GroupName, WeekDay, OrderCount, ReservedCount
Тогда у меня есть перечислимая GroupedByDate с полями OrderWeek, WeekDay, Supplier, SupplierId, PlantId, DeliveredCount
То, что создано
var GroupedByDate = from r in dsDta.Tables[0].Rows.Cast<DataRow>()
let eventTime = (DateTime)r["EntryTime"]
group r by new
{
WeekStart = new DateTime(eventTime.Year, eventTime.Month, eventTime.AddDays(-(int)(eventTime.DayOfWeek + 6) % 7).Day),
WeekDay = eventTime.DayOfWeek
}
into g
select new
{
g.OrderWeek,
g.WeekDay,
g.Supplier,
g.SupplierID,
g.PlantId,
DeliveredCount = g.Count()
};
Я хотел бы объединить эти данные, используя
var result = from T1 in table1.Rows.Cast<DataRow>()
join T2 in GroupedByDate
on new
{
PlantID = T1.Field<int>("PlantId"),
SupplierID = T1.Field<int>("SupplierId"),
OrderWeek = T1.Field<DateTime>("OrderWeek"),
WeekDay = T1.Field<int>("Weekday")
}
equals new
{
T2.PlantID,
T2.SupplierID,
T2.OrderWeek,
T2.WeekDay
} into JoinedData
from TotalData in JoinedData
select new
{
PlantId = TotalData.PlantID,
PlantName = T1.Field<string>("PlantName"),
OrderWeek = TotalData.OrderWeek,
SupplierId = TotalData.SupplierID,
SupplierName = T1.Field<string>("SupplierName"),
GroupId = T1.Field<int>("FuelGroupId"),
GroupName = T1.Field<string>("FuelGroupName"),
Weekday = TotalData.WeekDay,
OrderCount = T1.Field<int>("OrderCount"),
ReservedCount = T1.Field<int>("ReservedCount"),
DeliveredCount = TotalData.Field<int>("DeliveredCount")
};
Все идет хорошо, кроме последней строки
DeliveredCount = TotalData.Field<int>("DeliveredCount")
приносит мне ошибку:
Ошибка CS1929 '' не содержит определения для 'Field', и для наилучшей перегрузки метода расширения 'DataRowExtensions.Field (DataRow, string)' требуется приемник типа 'DataRow'.
Что не так с моим кодом?