Как использовать Linq для выбора информации из коллекции в другой конкретный класс, который я создал? - PullRequest
0 голосов
/ 03 августа 2011

У меня есть следующий класс:

public class EntityJESummary
{
    public int JEGroupingId { get; set; }
    public int PartnershipId { get; set; }
    public int JEId { get; set; }
    public DateTime BookingDate { get; set; }
    public DateTime EffectiveDate { get; set; }
    public bool Allocated { get; set; }
    public int JEEstate { get; set; }
    public float Debit { get; set; }
    public float Credit { get; set; }
    public string JEComments { get; set; }

    public EntityJESummary()
    {

    }
}

И здесь я использую Linq для фильтрации DataRows из источника. Я пытаюсь разместить информацию из этого источника данных в этом новом классе типов держателей.

Есть предложения?

_dttMasterViewTransaction = dtsTransaction.Tables["tblTransaction"];

var datos = _dttMasterViewTransaction.AsEnumerable()
         .Where(r => r["JEID"] == FundsID)
         .Select(new EntityJESummary ???

Обратите внимание, где я использую r ["foo"], я выбираю данные из каждого DataRow. Мне нужно получить определенные строки и вписать их в определенные свойства моего класса-держателя.

Кроме того, в таблице данных может быть много строк для одного JEId, поэтому я хотел бы получить каждый дебет из каждого datarow и суммировать его в свойстве float Debit.

Любые предложения будут очень признательны. :)

Ответы [ 2 ]

2 голосов
/ 03 августа 2011

Не проверено, но попробуйте что-то похожее на то, что вы сделали с предложением Where:

var datos = _dttMasterViewTransaction.AsEnumerable()
.Where(r => r["JEID"] == FundsID)
.Select(r => new EntityJESummary { 
      JEGroupingId = r["JEGroupingId"],
      PartnershipId = r["PartnershipId"],
      .....
    } );
0 голосов
/ 03 августа 2011

Вы можете использовать Инициализаторы объектов .

_dttMasterViewTransaction = dtsTransaction.Tables["tblTransaction"];

var datos = _dttMasterViewTransaction.AsEnumerable()
    .Where(r => r["JEID"] == FundsID).Select(r =>
        new EntityJESummary() {
            JEGroupingId = r["JEID"],
            PartnershipId = r["PartnershipId"]
        };
...