Привет всем, поэтому я пытаюсь создать приложение с использованием asp.net mvc с первой базой данных кода, которая позволяет пользователям создавать запись в блоге с помощью многие изображения по своему усмотрению. У меня есть данные, хранящиеся в базе данных, но в настоящее время я пытаюсь отобразить изображение головы, тела и изображений в представлении на экране, это то, что мне хотелось бы выглядеть так: http://imgur.com/a/IR19r, но я не уверен как это сделать. Я могу показать голову и тело, но не может получить изображения из таблицы изображений здесь является база данных схема: http://imgur.com/a/lvwtiОтображение данных из нескольких моделей на одном представлении (изображения и текст)
В настоящее время это ошибка я получаю, когда я добавить это мнение @Html.DisplayFor(modelItem => item.Images)
Исключение типа «System.Data.Entity.Core.EntityCommandExecutionException» произошло в EntityFramework.SqlServer.dll, но не было обработано в коде пользователя
Дополнительная информация: Произошла ошибка при выполнении определения команды. Подробнее см. Внутреннее исключение.
Модель
public partial class PostModel
{
public PostModel()
{
Images = new List<ImageModel>();
}
[Key]
[HiddenInput(DisplayValue = false)]
public int ID { get; set; }
[Required(ErrorMessage = "Heading is Required")]
[Display(Name = "Heading")]
public string Heading { get; set; }
[Required(ErrorMessage = "Body is Required")]
[DataType(DataType.MultilineText)]
[Display(Name = "Body")]
public string Body { get; set; }
public virtual ICollection<ImageModel> Images { get; set; }
public IEnumerable<HttpPostedFileBase> File { get; set; }
}
public class ImageModel
{
[Key]
public int ID { get; set; }
public string Path { get; set; }
public virtual PostModel Post { get; set; }
public string DisplayName { get; set; }
}
public class ImageVM
{
public int? ID { get; set; }
public string Path { get; set; }
public string DisplayName { get; set; }
public bool IsDeleted { get; set; }
}
public partial class PostVM
{
public PostVM()
{
Images = new List<ImageVM>();
}
public int? ID { get; set; }
public string Heading { get; set; }
public string Body { get; set; }
public IEnumerable<HttpPostedFileBase> Files { get; set; }
public List<ImageVM> Images { get; set; }
}
DbContext
public class EFDbContext : DbContext
{
public DbSet<PostModel> Posts { get; set; }
public DbSet<PostVM> PostVMs { get; set; }
public DbSet<ImageModel> Images { get; set; }
public DbSet<ImageVM> ImageVMs { get; set; }
}
Контроллер
public ViewResult Display()
{
return View(repository.Posts)
}
Посмотреть
@model IEnumerable<Crud.Models.PostModel>
@{
ViewBag.Title = "Index";
}
@foreach (var item in Model)
{
<div>
@Html.DisplayFor(modelItem => item.Heading)
</div>
<div>
@Html.DisplayFor(modelItem => item.Body)
</div>
<div>
@Html.DisplayFor(modelItem => item.Images)
@*<img class="img-thumbnail" width="150" height="150" src="/Img/@item.Images" />*@
</div>
}
Вот альтернативный контроллер я пытался, но я не использую, как я получил эту ошибку, когда я попытался позволить Images = i.Path
и не был действительно уверен, что это должно было быть, как это было сделано
Не удается неявно преобразовать typeCrud ' строка»до 'System.Collections.Generic.List Crud.Models.ImageVm'
public ViewResult Display()
{
IEnumerable<PostVM> model = null;
model = (from p in db.Posts
join i in db.Images on p.ID equals i.Post
select new PostVM
{
ID = p.ID,
Heading = p.Heading,
Body = p.Body,
Images = i.Path
});
return View(model);
}
по какой-то причине, которая дает мне не поддерживаемое исключение? > Объект или сложный тип «Crud.Concrete.PostVM 'не может быть сконструирован в запросе LINQ to Entities. – WellThisIsAkward
пропустил ваше редактирование, попробовав, что сейчас – WellThisIsAkward
обновил мое мнение, как вы сказали, но по какой-то причине оно дает мне не поддерживаемое исключение? > Объект или сложный тип «Crud.Concrete.PostVM» не может быть сконструирован в запросе LINQ to Entities. на последнем списке в методе отображения в контроллере – WellThisIsAkward