biarkan disana ada :
Expression<Func<Message, bool>> exp1 = x => x.mesID == 1;
Expression<Func<MessageDTO, bool>> exp2 = x => x.mesID == 1;
sekarang saya harus meneruskan exp1 ke _db.Messages.where(exp1);
masalahnya adalah saya hanya punya exp2, saya perlu mengonversi tipenya menjadi Pesan, Semua propertinya sama!
sekarang saya melakukan ini:
var par = Expression.Parameter(typeof(Message));
var ex = (Expression<Func<Message, bool>>)Expression.Lambda(exp2.Body, par);
Masalah dengan ini adalah parameter input diubah ya! tetapi x di dalam badan lambda "x.mesID" adalah tipe lama.
Adakah cara untuk mengubah semua jenis parameter di badan juga atau mengubah parameter masukan yang mencerminkan badan juga?
Saya kira ini adalah masalah besar yang selalu saya alami dengan LINQ, karena antar lapisan saya tidak dapat meneruskan kelas yang dihasilkan, karena ini akan membuat lapisan digabungkan, jadi saya harus membuat kelas yang ringan, sekarang bagaimana cara menggunakan metode seperti _db.Messages .Di mana(); dari lapisan bisnis?!! sementara lapisan bisnis tidak mengetahui apa pun tentang jenis Pesan, ia hanya mengetahui MessageDTO.