Я пытаюсь показать данные из двух таблиц. Я пробовал это https://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application и использовал активную загрузку.Ошибка при просмотре при попытке загрузки
У меня было три стола «узытканик», «rolaPowiazanie» и «rola». «RolaPowiaznie» соединение «Неактивированная» и „Рол“ - есть два столбца „idRola“ и „конец idUzytkownik“ эта таблица невидима в моей модели данных
Мои модели:
Неактивированных
public partial class uzytkownik
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public uzytkownik()
{
this.ocenaPowiazanie = new HashSet<ocenaPowiazanie>();
this.przedmiotPowWykladowca = new HashSet<przedmiotPowWykladowca>();
this.grupa = new HashSet<grupa>();
this.rola = new HashSet<rola>();
}
[Key]
public int idUzytkownik { get; set; }
public string imie { get; set; }
public string nazwisko { get; set; }
public string pesel { get; set; }
public string haslo { get; set; }
public string email { get; set; }
public Nullable<bool> stan { get; set; }
public virtual ICollection<rola> rola { get; set; }
}
.
Рола
public partial class rola
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public rola()
{
this.uzytkownik = new HashSet<uzytkownik>();
}
[Key]
public int idRola { get; set; }
public string nazwaRoli { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<uzytkownik> uzytkownik { get; set; }
}
Они автоматически генерируются ADO.NET Entity Data Model - База данных первого
Как и в уроке я попытался жадную загрузку и мой контроллер выглядит следующим образом:
public class UzytkownicyController : Controller
{
private PegazEntities db = new PegazEntities();
// GET: Uzytkownicy
public ActionResult Index()
{
var uzytkownicy = db.uzytkownik.Include(x => x.rola);
return View(uzytkownicy.ToList());
}
На мой взгляд, я попробовал:
@Html.DisplayFor(modelItem => item.rola.nazwaRoli)
«ICollection» не содержит определение для «nazwRoli» и нет метод расширения «nazwaRoli», принимающий первый аргумент типа «ICollection», может быть найден (вам не хватает директивы использования или ссылки на сборку?)
Я что-то пропустил? Я попытался сделать все, как в этом уроке, но что-то пошло не так.
Он не знает типа, так что он падает обратно к ICollection. Попробуйте использовать бросок. что-то вроде @ Html.DisplayFor (modelItem => ((uzytkownik) item.rola) .nazwaRoli) – Nikki9696
Не совсем относится к вопросу, который вы задаете, но вы можете прочитать рекомендации Microsoft по капитализации (https: // msdn .microsoft.com/EN-US/библиотека/ms229043.aspx); в основном, свойства и классы/структуры/перечисления должны быть паскальными. Вам не обязательно следовать этим рекомендациям, но вы, вероятно, должны это сделать. –