3
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(); 
4

2 に答える 2

0

これを試してから、クエリを返します。フォーマットについて申し訳ありませんが、それは私にブルースを与えていました

        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();
于 2012-05-10T19:00:38.387 に答える
0

クエリで顧客の電子メールをログイン ID と比較しています。これによりキャストの問題が発生すると思いますが、そうでない場合は、必要な正しい結果が返されない可能性があります。

IQueryable ではなく暗黙のキャスト (var) を使用する

于 2012-05-05T08:54:40.473 に答える