Я пытаюсь показать несколько пользователя с их изображением Итак, у меня есть метод JSon действий, как это:LINQ к Entities не распознает метод «System.Web.Mvc.FileResult»
public JsonResult GetUsers()
{
var ret = (from user in db.Users
orderby user.UserName
select new
{
UserName = user.UserName,
Pic = GetFileData(user.Id),
}).AsEnumerable();
return Json(ret, JsonRequestBehavior.AllowGet);
}
И это мой метод GetFileData
, чтобы получить изображение пользователя:
public FileResult GetFileData(int Id)
{
var avatarImage = db.Files.SingleOrDefault(s => s.ApplicationUserId == Id);
return File(avatarImage.Content, avatarImage.ContentType);
}
Здесь ApplicationUserId
является внешним ключом, относящимся к файлам и ApplicationUser
класса.
Теперь, когда я выполнить запрос, я должен получить имя пользователя с их ПОС Но я получаю System.NotSupportedException
.The полное сообщение об ошибке:
LINQ к Entities не распознает метод «system.web .Mvc.FileResult GetFileData (Int32) ', и этот метод не может быть переведен в выражение хранилища.
Как получить его resolved.I видел много StackOverflow вопроса, касающегося его, но ни один из вопроса не относящийся к FileResult.The коде для просмотра страницы здесь http://pastebin.com/AyrpGgEm
Ну, вы попробовали применить те же * рассуждения * к другим вопросам к вашей ситуации? В принципе, вам почти наверняка просто нужно 'AsEnumerable()' * перед * select, например. 'db.Users.OrderBy (user => user.UserName) .AsEnumerable(). Выберите (user => new {user.UserName, Pic = GetFileData (user.Id)})' –
Вы, по крайней мере, внесите материализацию своего запроса перед 'select' (например,' .ToList() ') –
Я никогда не пытался сериализовать' FileResult' для Json, но я не удивлен, потому что это не сработает. Я подозреваю, что вам нужно отправить изображения в формате Base64. –