首页 > 解决方案 > 找不到源类型“TemplateBodyResponse”的查询模式的实现。未找到“选择”

问题描述

我有波纹管响应模型

public  class GetSearchNotificationTemplateResponse
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool IsActive { get; set; }
        public TemplateBodyResponse templateBody { get; set; }
    }
    public class TemplateBodyResponse
    {
        public string EmailContent { get; set; }
        public string SMSContent { get; set; }
        public string PushNotificationsContent { get; set; }
    }
    public class SearchNotificationTemplateResponse
    {
        public List<GetSearchNotificationTemplateResponse>  TemplateResponses { get; set; }
    }

templatebody 响应包含 json 格式,如下所示

{\"EmailContent\":SampleData\",\"SMSContent\":SampleData\",\"PushNotificayionsContent\":SampleData|"}

我的 bs 喜欢下面

  public async Task<SearchNotificationTemplateResponse> SearchNotificationTemplate1(Contracts.Models.SearchNotificationRequest request)
        {
            SearchNotificationTemplateResponse Response = new SearchNotificationTemplateResponse()
            {
                TemplateResponses = new List<Contracts.Models.GetSearchNotificationTemplateResponse>()
            };
            Response.TemplateResponses = (from res in await notificationRepository.SearchNotificationTemplate(request)
                                          select new Contracts.Models.GetSearchNotificationTemplateResponse()
                                          {
                                              Id = res.NotificationTemplateId,
                                              Name = res.TemplateName,
                                              IsActive = res.IsActive,
                                              templateBody = (from list in  notificationRepository.GetTemplateBodyById(res.NotificationTemplateId)
                                                              select new Contracts.Models.TemplateBodyResponse()
                                                              {
                                                                  EmailContent = list.EmailContent,
                                                                  SMSContent = list.SMSContent,
                                                                  PushNotificationsContent = list.PushNotificationsContent
                                                              }).ToList()
                                          }).ToList();
            return Response;
        }

我的存储库逻辑是

  public async Task<TemplateBodyResponse> GetTemplateBodyById(int id)
            {
                var res = this.DbSet.Where(a => a.NotificationTemplateId == id).FirstOrDefault();
                TemplateBodyResponse deserializedTemplate = JsonConvert.DeserializeObject<TemplateBodyResponse>(res.Body);
                return await Task.FromResult(deserializedTemplate);
            }

res.Body具有以上 json 数据。我想将那些反序列化的模板响应分配给 templatebody 对象。我无法得到它

标签: c#entity-frameworklinqasp.net-core-webapi

解决方案


推荐阅读