Linq: Menggabungkan dua tabel

Di Grid WPF saya, saya mengisi properti berikut. Dua yang terakhir berasal dari meja lain. Saya ingin mendapatkan aturan pemetaan dari tabel lain di mana sourceelementid pada tabel transaksi sama dengan id dari tabel messagefield

public List<MessageFieldViewModel> GetAllViewModelMsgFields()
{
    messageFieldVModel = messageField.GetAllMessageField().Select(msgFields => new MessageFieldViewModel
    {
        Id = msgFields.Id,
        Code = msgFields.Code,
        Name = msgFields.Name,
        Position = msgFields.Position,
        Length = msgFields.Length,
        IsMapped = (transactionRuleList.Any(tr=> tr.SourceElementId ==msgFields.Id)),
        MappingRule = transactionRuleList.Where(mapRule => mapRule.MappingRule.Any(tr=> tr.SourceElementId ==msgFields.Id)),
    })
.ToList();
    return messageFieldVModel;
}

tetapi kolom aturan Pemetaan menimbulkan kesalahan. Adakah yang bisa membantu saya?


person Ayda Sayed    schedule 06.06.2013    source sumber
comment
Bisakah Anda memposting pengecualian bagian dalam?   -  person Goanne    schedule 06.06.2013
comment
@Goanne inilah kesalahannya: 'char' tidak mengandung definisi untuk 'SourceElementId' dan tidak ada metode ekstensi 'SourceElementId' yang menerima argumen pertama bertipe 'char' yang dapat ditemukan (apakah Anda melewatkan arahan penggunaan atau referensi perakitan?   -  person Ayda Sayed    schedule 06.06.2013
comment
Oke, apakah Anda berniat menambahkan koma terakhir sebelum menutup braket dalam? msgFields.Id)), =› msgFields.Id))   -  person Goanne    schedule 06.06.2013
comment
Ini yang saya punya : MappingRule = TransactionRuleList.Where(mapRule =› mapRule.MappingRule.Any(tr =› tr.SourceElementId == msgFields.Id)) }) .ToList();   -  person Ayda Sayed    schedule 06.06.2013
comment
Saya menemukan apa masalahnya, saya akan segera memposting solusinya! Terima kasih semua   -  person Ayda Sayed    schedule 06.06.2013


Jawaban (1)


Ini solusinya:

      transactionRuleList = transationRuleViewModel.GetAllTranslationRules();
        messageFieldVModel = messageField.GetAllMessageField().Select(msgFields => new MessageFieldViewModel
        {
            Id = msgFields.Id,
            Code = msgFields.Code,
            Name = msgFields.Name,
            Position = msgFields.Position,
            Length = msgFields.Length,
            IsMapped = (transactionRuleList.Any(tr => tr.SourceElementId == msgFields.Id)),
            MappingRule = transactionRuleList.Any(mapRule => mapRule.SourceElementId == msgFields.Id)?transactionRuleList.First(mapRule => mapRule.SourceElementId == msgFields.Id).MappingRule:null
person Ayda Sayed    schedule 06.06.2013