다른 레이어에 코드를 넣어야하는 프로젝트가 있는데이 때문에 linq 쿼리를 메서드로 전송해야합니다. 이 코드 :동적 유형 속성을 가져 오는 방법은 무엇입니까?
var HRPersonnelContactInfoTelService = App.Api.HRPersonnelContactInfoTelService.Instance().Data();
var SMSGroupMemberService = App.Api.SMSGroupMemberService.Instance().Data();
return (from x in SMSGroupMemberService
where Recivers.Contains(x.GroupID)
join v in HRPersonnelContactInfoTelService on x.Pers_Code equals v.Pers_Code
select new { Pers_Code = (int)x.Pers_Code, Tel = v.Tel }).ToList();
나는에 코드를 변환 :
public dynamic HRPersonnelContactInfoTelMethod(List<int> Recivers)
{
var HRPersonnelContactInfoTelService = App.Api.HRPersonnelContactInfoTelService.Instance().Data();
var SMSGroupMemberService = App.Api.SMSGroupMemberService.Instance().Data();
return (from x in SMSGroupMemberService
where Recivers.Contains(x.GroupID)
join v in HRPersonnelContactInfoTelService on x.Pers_Code equals v.Pers_Code
select new { Pers_Code = (int)x.Pers_Code, Tel = v.Tel }).ToList();
}
하지만 난 foreach 문에서 사용할 때
유형 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'의 예외 System.Core.dll에서 발생했지만 사용자 코드에서 처리되지 않았습니다.
추가 정보 : 'object'do ES
이처럼 사용 'Pers_Code'에 대한 정의를 포함하지 :
var q = App.Api.HRPersonnelContactInfoTelService.Instance().HRPersonnelContactInfoTelMethod(Recivers);
foreach (var item in Recivers)
{
var res = App.Api.SMSMessageGroupService.Instance().AddOrUpdate(null, MessageId, item);
}
foreach (var z in q)
{
string SendNumber = Number[1].Trim().Substring(0, 3) == "+98" ? Number[1].Trim() : "+98" + Number[1].Trim();
var res = App.Api.SMSMessageLogService.Instance().AddOrUpdate(null, MessageId, (int)z.Pers_Code, z.Tel.ToString(),
0, int.Parse(ddlSMSWorkingGroups.SelectedValue.ToString()), (int)z.Pers_Code, SendNumber, 0);
send.SendSMS("nazmaran", "qwerty", SendNumber, "09122596898", txtPredefinedRemarks.Text);
}
어떻게 사용합니까에 대한 코드를 추가하십시오 –