English 中文(简体)
LINQ-to-SQL - Sum within a selected new
原标题:LINQ-to-SQL - Sum inside a select new

I have a LINQ-to-SQL query that runs through a table, that I want to select 3 sum s - the sums of Rate and AdditionalCharges , so I have something like this:

var sums = from d in dc.Deliveries
where d.TripDate == DateTime.Now
select new
{
    Rate = d.Rate,
    AdditionalCharges = d.AdditionalCharges
};

然而,这显然使每次交付都翻了一番,这意味着我不得不在之后加起来——这似乎效率不高。 是否有较容易的办法?

最佳回答

If you use query syntax you can do something like the following

var data = dc.Deliveries.Where(d => d.TripDate == DateTime.Now)
var rateSum = data.Sum(d => d.Rate);
var additionalCharges = data.Sum(d => d.AdditionalCharges);

this is off the top of my head and not tested

问题回答

I know that this is an old question, but hey, I found it, so hopefully this will help someone else...

You can also do this using Fluent syntax:

var sums = dc.Deliveries
             .Where(d => d.TripDate == DateTime.Now)
             .GroupBy(d => d.TripDate)
             .Select(g =>
                 new
                 {
                     Rate = g.Sum(s => s.Rate),
                     AdditionalCharges = g.Sum(s => s.AdditionalCharges)
                 });

Hope this helps someone...

并非肯定,但你可以尝试按以下方式发挥小组的作用:

var sums = from d in dc.Deliveries
where d.TripDate == DateTime.Now
group d by new {d.Rate,d.AdditionalCharges,d.TripDate} into g
select new
{
    Rate = g.Sum(s => s.Rate ),
    AdditionalCharges = g.Sum(s => s.AdditionalCharges)
};

You should be able to do this:

DateTime d = DateTime.Now;
var sums = from d in dc.Deliveries
select new
{
    Rate = dc.Deliveries.Where(n => n.TripDate == d).Sum(n => n.Rate),
    AdditionalCharges = dc.Deliveries.Where(n => n.TripDate == d).Sum(n => n.AdditionalCharges)
};

var result = sums.FirstOrDefault();
    var sums = from d in dc.Deliveries
    where d.TripDate == DateTime.Now
    Group by d.TripDate // or primary key
    Into TotalRate = sum(d.Rate),
    TotalAdditionalCharges = sum(d.AdditionalCharges)
    Select TotalRate , TotalAdditionalCharges




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签