来自物化的System.Byte []'的指定演员表。输入可以为空的系统.Byte'类型无效

时间:2015-07-06 10:29:01

标签: entity-framework wcf

    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);
    }

在底部的代码中,我遇到了这个错误&#34;来自物化的&#39; System.Byte []&#39;输入可以为空的系统.Byte&#39;类型无效。&#34;

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);

1 个答案:

答案 0 :(得分: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);
}