Naprawdę utknąłem z Linq do grupowania i podsumowania SQL, przeszukaliśmy wszędzie, ale nie rozumiem wystarczająco dużo, aby zastosować inne rozwiązania na własną rękę.Grupa Suma Linq do SQL w C#
Mam widoku w mojej bazy danych o nazwie view_ProjectTimeSummary ta ma następujące pola:
string_UserDescription
string_ProjectDescription
datetime_Date
double_Hours
Mam metodę, która przyjmuje do iz data parametru i najpierw tworzy Ta lista <>:
List<view_UserTimeSummary> view_UserTimeSummaryToReturn =
(from linqtable_UserTimeSummaryView
in datacontext_UserTimeSummary.GetTable<view_UserTimeSummary>()
where linqtable_UserTimeSummaryView.datetime_Week <= datetime_To
&& linqtable_UserTimeSummaryView.datetime_Week >= datetime_From
select linqtable_UserTimeSummaryView).ToList<view_UserTimeSummary>();
Przed powrotem liście (być używany jako źródło danych dla DataGridView) filtrować pole string_UserDescription za pomocą parametru o tej samej nazwie:
if (string_UserDescription != "")
{
view_UserTimeSummaryToReturn =
(from c in view_UserTimeSummaryToReturn
where c.string_UserDescription == string_UserDescription
select c).ToList<view_UserTimeSummary>();
}
return view_UserTimeSummaryToReturn;
Jak mogę manipulować wynikowej liście <> pokazać sumę z double_Hours polowych dla danego użytkownika i projektu pomiędzy do i od parametrów daty (a nie odrębnych zapisów na każdy dzień)?
np. List <> z następujących dziedzin:
string_UserDescription
string_ProjectDescription
double_SumOfHoursBetweenToAndFromDate
Mam rację, że oznaczałoby to, że będę musiał wrócić inny typ listy <> (ponieważ ma mniej pól niż view_UserTimeSummary)?
Przeczytałem, że aby uzyskać sumę, jest to coś w rodzaju "grupy/przez/do b", ale nie rozumiem, jak ta składnia działa, patrząc na inne rozwiązania ... Czy ktoś może mi pomóc?
Dzięki Steve
Dzięki David - działa świetnie - początkowo zapomniał użyć get/set część więc nie było widać w moim DataGridView, coś wspólnego z kolumny autogenerate działają tylko wtedy, gdy obiekty na liście mają tylko pola, a nie właściwości ... –