2015-07-06 28 views
0
public virtual ObjectResult<Nullable<byte>> GetPersonalPicture3(Nullable<System.Guid> contactId) 
    { 
     var contactIdParameter = contactId.HasValue ? 
      new ObjectParameter("ContactId", contactId) : 
      new ObjectParameter("ContactId", typeof(System.Guid)); 

     return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<byte>>("GetPersonalPicture3", contactIdParameter); 
    } 

,我面對這個錯誤「從物化「系統指定的強制轉換.Byte []'類型爲可以爲null的'System.Byte'類型無效。「從物化「System.Byte []」類型爲可空「System.Byte」類型指定的強制轉換不是在底部代碼有效

byte x = DBPSO.GetPersonalPicture3(ProfileID).FirstOrDefault() ?? 0000; 

此外,我已經測試此代碼太

var x = DBPSO.GetPersonalPicture3(ProfileID).Select(B => B.Value).ToArray(); 

string binaryPic = System.Text.Encoding.Unicode.GetString(x); 

回答

0

在DB的圖片可能是一個VARBINARY所以字節數組,而不是一個字節。 試試這個:

public virtual ObjectResult<byte[]> GetPersonalPicture3(Nullable<System.Guid> contactId) 
{ 
    var contactIdParameter = contactId.HasValue ? 
     new ObjectParameter("ContactId", contactId) : 
     new ObjectParameter("ContactId", typeof(System.Guid)); 

    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<byte[]>("GetPersonalPicture3", contactIdParameter); 
} 
相關問題