2017-02-21 32 views
-1

Например:Как сделать операции внутри метода Select() в LINQ?

db.Images.Select(image => new ImageViewModel{ 
Image64 = //I want to make calcuation on the image.Uri to convert it toBase64 
}); 

Я загрузить изображение и преобразовать его в Base64 затем назначить его на Image64 свойство ImageViewModel. Есть ли способ сделать это?

EDIT

Я попытался следующие Image64 = FromAzureToBase64(image.AzureUri), он бросает это исключение:

Дополнительная информация: LINQ к Entities не распознает метод «System.String FromAzureToBase64 (System.String) ', и этот метод не может быть переведен в выражение хранилища.

это метод (не проверено):

private static string FromAzureToBase64(string azureUri) 
{ 
    Uri blobUri = new Uri(azureUri); 
    CloudBlockBlob blob = new CloudBlockBlob(blobUri, StorageAccount.Credentials); 
    using (MemoryStream stream = blob.OpenRead() as MemoryStream) 
    { 
     byte[] arr = stream.ToArray(); 
     var azureBase64 = Convert.ToBase64String(arr); 
     return azureBase64; 
    } 
} 
+0

, что вы пробовали до сих пор? Я имею в виду, что это так же просто, как 'db.Images.Select (x => new {A = 1 * 5}), например. Вы можете даже вызвать другие методы, такие как 'A = GetSomeValue (x)' –

+0

Я внесла поправки –

ответ

2

Преобразование его в перечислимого списка, а затем сделать свои функции на нем

var images = db.Images.Tolist(); 
var images_aft = images.select(/*Do here whatever you want*/);