Asp.net linq query

本文关键字:query linq net Asp | 更新日期: 2023-09-27 18:33:25

System.Linq.IQueryable<CustomerProfile> query = 
    from usr in context.customer_profiles
    where usr.cust_email == LoginID
    select new CustomerProfile
    {
        NAME = usr.cust_name,
        CONTACT = usr.cust_contact,
        EMAILID = usr.cust_email,
        LOCATION = usr.cust_location,
        SERVICELOCATION=usr.cust_service_location,
        FAXNO=usr.cust_fax_no,
        FIRMNAME = usr.cust_firm_name,
        FIRMADDRESS = usr.cust_firm_address,
        DATEESTABLISHED = Convert.ToDateTime(((DateTime?)usr.date_of_established)),
        SIGNATURE = usr.cust_signature,
        LOGO =  usr.logo,
    };

在接下来的行中,我遇到"指定的强制转换无效"的问题。我该如何纠正此问题?

return query.ToList().FirstOrDefault(); 

Asp.net linq query

您正在将客户电子邮件与其查询中的登录 ID 进行比较。我认为这会导致转换问题,否则它可能不会返回您想要的正确结果。

并使用隐式强制转换 (var) 而不是 IQueryable

试试这个,然后返回查询。对不起格式,它给了我忧郁

        CustomerProfile query =
         (from usr in context.customer_profiles
          where usr.cust_email == LoginID
          select new
          {
              NAME = usr.cust_name,
              CONTACT = usr.cust_contact,
              EMAILID = usr.cust_email,
              LOCATION = usr.cust_location,
              SERVICELOCATION = usr.cust_service_location,
              FAXNO = usr.cust_fax_no,
              FIRMNAME = usr.cust_firm_name,
              FIRMADDRESS = usr.cust_firm_address,
              DATEESTABLISHED = Convert.ToDateTime(((DateTime?)usr.date_of_established)),
              SIGNATURE = usr.cust_signature,
              LOGO = usr.logo,
          }).FirstOrDefault();