Суммирование десятичного поля с использованием Linq в datatable - PullRequest
0 голосов
/ 16 декабря 2018

Я смог заставить это работать после большого разочарования, но я надеялся, что кто-нибудь сможет объяснить мне, почему это работает:

var monthCharges = WRVUData.AsEnumerable()
                               .Where(dr => dr.Field<DateTime>("Posting_Month") == new DateTime(month.Year, i, 1))
                               .Where(dr => dr.Field<string>("Report_Producer_Name") == provider || dr.Field<string>("Group_Name") == group)
                               .Where(dr => dr.Field<decimal?>("Charges") != null)
                               .Sum(dr => dr.Field<decimal>("Charges"));

, но это не так:

var monthCharges = (from r in WRVUData.AsDataView()
                 select new
                 {
                     charges = r.Field<decimal?>("Charges"),
                     activityType = r.Field<string>("Activity_Type"),
                     postingMonth = r.Field<DateTime>("Posting_Month"),
                     provider = r.Field<string>("Report_Producer_Name"),
                     groupName = r.Field<string>("Group_Name"),
                     WRVUs = r.Field<decimal>("W_RVUs")
                 })
                                    .Where(dr => dr.postingMonth == new DateTime(month.Year, i, 1))
                                    .Where(dr => dr.provider == provider || dr.groupName == group)
                                    .Where(dr => dr.charges != null)
                                    .Sum(dr => dr.charges);

Вторая версия выдает ошибку «Указанное приведение неверно».Разве эти два понятия не одно и то же?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...