Tôi có một truy vấn SQL đơn giản:hồ sơ đếm trong C# sử dụng LINQ
Select ID, COUNT(ID) as Selections, OptionName, SUM(Units) as Units
FROM tbl_Results
GROUP BY ID, OptionName
Các kết quả tôi nhận được là:
'1' '4' 'Approved' '40'
'2' '1' 'Rejected' '19'
'3' '2' 'Not Decided' '12'
Tôi có để mã hóa dữ liệu trong cơ sở dữ liệu, và như sáng như vậy không thể tổng hợp dữ liệu dưới dạng quan hệ. Để giải quyết vấn đề này, tôi giải mã dữ liệu trong lớp ứng dụng và muốn sử dụng LINQ để truy vấn nó ở đó. Tôi cần kết quả như sau:
'1' 'Approved' '10'
'3' 'Not Deceided' '6'
'2' 'Rejected' '19'
'1' 'Approved' '15'
'1' 'Approved' '5'
'3' 'Not Deceided' '6'
'1' 'Approved' '10'
tôi đặt những kết quả này vào lớp học và tạo ra một danh sách mạnh mẽ gõ:
public class results
{
public int ID {get;set;}
public string OptionName {get;set;}
public int Unit {get;set;}
}
Tôi gần như có các truy vấn LINQ để mang lại kết quả như các truy vấn SQL về:
var q = from r in Results
group p.Unit by p.ID
int g
select new {ID = g.Key,
Selections = g.Count(),
Units = g.Sum()};
Làm cách nào để đảm bảo truy vấn LINQ của tôi cũng cung cấp cho tôi Option Name
?
Nếu tôi đã tạo một lớp được gọi là Statistics
để giữ kết quả của mình, làm cách nào tôi sửa đổi truy vấn LINQ để cung cấp cho tôi List<Statistics>
kết quả được đặt?
public class results
{
public int ID {get;set;}
public int NumberOfSelections { get; set; }
public string OptionName {get;set;}
public int UnitTotal {get;set;}
}
Tôi rất vui vì đã mất quá nhiều thời gian để trả lời. Tôi sẽ đề nghị một cái gì đó như "nhóm kết quả bởi result.ID" và sau đó "OptionName = g.Select (result => result.OptionName). Đầu tiên()". Mà có lẽ sẽ là quá nhiều. –