private class DataBindingProjection
{
public int WorkerId { get; set; }
public string WorkerName { get; set; }
public string Address { get; set; }
public string Contact { get; set; }
public string ReferenceName { get; set; }
public string ReferenceContact { get; set; }
public int TotalDistribute { get; set; }
public int TotalCollection { get; set; }
public int TotalDeposit { get; set; }
public int TotalPayment { get; set; }
public int TotalPayable { get; set; }
}
private void WorkerLIstForm_Load(object sender, EventArgs e)
{
var totalDistributed = (db.Distributions.AsEnumerable().GroupBy(d => d.WorkerId)).Select(a => new
{
WorkerId = a.Key,
Amount = a.Sum(r => r.Piece)
}).ToList();
var collection = (db.Collections.AsEnumerable().GroupBy(d => d.WorkerId)).Select(a => new
{
WorkerId = a.Key,
Piece = a.Sum(r => r.Piece),
Deposit = a.Sum(r => r.PayableDeposit)
}).ToList();
var workerPayment = (db.WorkerPayments.AsEnumerable().GroupBy(d => d.WorkerId)).Select(a => new
{
WorkerId = a.Key,
Payment = a.Sum(r => r.Payment),
PayableAmount = a.Sum(r => r.PayableAmount)
}).ToList();
var worker = from w in db.Workers
join d in totalDistributed on w.WorkerId equals d.WorkerId
join c in collection on d.WorkerId equals c.WorkerId
join wp in workerPayment on w.WorkerId equals wp.WorkerId
select new DataBindingProjection
{
WorkerId = w.WorkerId,
WorkerName = w.WorkerName,
Address = w.Address,
Contact = w.Contact,
ReferenceName = w.ReferenceName,
ReferenceContact = w.RefereceContact,
TotalDistribute = d.Amount,
TotalCollection = c.Piece,
TotalDeposit = c.Deposit,
TotalPayment = wp.Payment,
TotalPayable = wp.PayableAmount
};
workerDataGridView.DataSource = worker.ToList();
}
Это мой код. Я хочу загрузить данные через workerId и суммировать их столбец c, но я сталкиваюсь с этой ошибкой .. System.NotSupportedException: «Невозможно создать постоянное значение типа« Анонимный тип ». В этом контексте поддерживаются только примитивные типы или типы перечисления. '
- Мой код неправильный?
- Если он неправильный, какой правильный или лучший подход для этого?