var pList = (from p in db.RTLS_PERSONDTLS
where (lsdAts <= p.CREATED_TIME &&
p.CREATED_TIME <= DateTime.Now)
where p.OPERATION_TYPE == 1
let pPhotoRow = (from q in db.Cloud_persons_images
where q.Image_name == p.PERSON_ID
where (lsdAts <= q.Createdtime && q.Createdtime <= DateTime.Now)
select q).FirstOrDefault()
let pExt = pPhotoRow.Img_ext
let photoBytes = pPhotoRow.Person_img
Let personPhoto = new PersonPhotoInfo { PDATA = Convert.ToBase64String(photoBytes), PEXT = pExt }
select new PersonListInfoDTO
{
MOB_NO = p.MOBILE_NO,
ACTINACT = (int)p.ACTINACT,
PHOTO = personPhoto
}).AsNoTracking().ToList();
雖然轉換字節數組ToBase64String我收到異常作爲LINQ實體無法識別方法「System.String ToBase64String(Byte [])'方法,並且此方法不能轉換爲存儲表達式。我正在使用sql Azure作爲我的後端存儲。LINQ到實體無法識別方法System.String ToBase64String(字節[])
http://stackoverflow.com/search?q=LINQ+to+Entities+ + +不承認+的方法 –
我曾嘗試過很多可能的解決方案,這是在互聯網上提供這種例外,但我沒有得到解決方案,我的問題..感謝您的鏈接 –
解決方案永遠是唯一的和相同的 - 雙投影。首先在匿名類型中獲取原始數據,然後使用'AsEnumerable()'和實際的投影方法來使用任何CLR方法。 –