Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
PresentSimple
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 36
1

Ошибка чтения из БД после добавления связей между таблицами (MVC)

22.03.2017, 11:44. Просмотров 354. Ответов 4
Метки нет (Все метки)

Есть БД из которой я беру данные. Сначала были все таблички по отдельности и всё выводилось нормально. После добавления связей между таблицами выскакивает исключение и данные не выводятся. На фото видно что исключение появляется когда доходит до foreach (item in Model).
Модель одной из таблиц имеет вид
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public partial class Vocabulary
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Vocabulary()
        {
            this.WordsForTest = new HashSet<WordsForTest>();
        }
    
        public int Id { get; set; }
        public string Title { get; set; }
        public string PicturePath { get; set; }
        public Nullable<int> WordsCount { get; set; }
        public Nullable<bool> LikeGroup { get; set; }
        public Nullable<int> GroupID { get; set; }
        public int UserId { get; set; }
    
        public virtual User User { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<WordsForTest> WordsForTest { get; set; }
    }
Из других таблицах ситуация аналогичная
0
Миниатюры
Ошибка чтения из БД после добавления связей между таблицами (MVC)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2017, 11:44
Ответы с готовыми решениями:

Создание БД SQL. Ошибка при установлении связей между таблицами
Доброго времени суток! Создала БД SQL средствами VS2012. Я сделала скрины: - схема данных; -...

Создание связей между таблицами
Подскажите, пожалуйста, отчего выходит предупреждение (рис. 1) и ошибка (рис. 2) по нажатию &quot;ОК&quot;? ...

Создание связей между таблицами
Часть связей не поддерживает обеспечение целостности данных, требует уникальный идентификатор. Что...

Создание связей между таблицами
Всем привет. Подскажите знающие люди как сделать следующее... Есть таблица с заполненными id, есть...

Нормализация связей между таблицами
Доброго времени суток! Не могу реализовать корректное заполнение отчета с разными полями из таблиц...

4
Usaga
Эксперт .NET
5556 / 3760 / 668
Регистрация: 21.01.2016
Сообщений: 14,975
Завершенные тесты: 2
22.03.2017, 12:38 2
PresentSimple, этот скриншот ничего не говорит. Покажите схему вашей БД, покажите создание модели данных контекста, запрос в контроллере, сообщение из вложенного исключения в конце концов... По приведённым выше данными ничего сказать нельзя.
0
PresentSimple
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 36
22.03.2017, 16:43  [ТС] 3
С тем вроде бы разобрался, но теперь вот такая ошибка выводится (на фото).
Вот такой контроллер
C#
1
2
3
4
5
        public ActionResult ProfileUser()
        {
            var item = db.User;
            return View(item);
        }
Вот модель
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    public partial class User
    {
        public int Id { get; set; }
        public string UserEmail { get; set; }
        public string UserName { get; set; }
        public Nullable<int> UserLevelInt { get; set; }
        public string UserLevelDesc { get; set; }
        public Nullable<int> UserGrammarScore { get; set; }
        public Nullable<int> UserVocabScore { get; set; }
        public Nullable<int> UserArticleScore { get; set; }
    
        public virtual Vocabulary Vocabulary { get; set; }
    }
LangDB.Context
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public partial class LangDBEntities3 : DbContext
    {
        public LangDBEntities3()
            : base("name=LangDBEntities3")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public virtual DbSet<Article> Article { get; set; }
        public virtual DbSet<Grammar> Grammar { get; set; }
        public virtual DbSet<Vocabulary> Vocabulary { get; set; }
        public virtual DbSet<WordsForTest> WordsForTest { get; set; }
        public virtual DbSet<GrammarTests> GrammarTests { get; set; }
        public virtual DbSet<User> User { get; set; }
        public virtual DbSet<Dictionary> Dictionary { get; set; }
    }
0
Миниатюры
Ошибка чтения из БД после добавления связей между таблицами (MVC)   Ошибка чтения из БД после добавления связей между таблицами (MVC)  
IamRain
1415 / 1260 / 397
Регистрация: 02.08.2011
Сообщений: 3,731
22.03.2017, 16:52 4
Вы передаете коллекцию, а View-ха принимает единственный объект.
C#
1
2
3
4
5
public ActionResult ProfileUser()
        {
            var item = db.User.First();
            return View(item);
        }
0
PresentSimple
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 36
22.03.2017, 17:08  [ТС] 5
Заработало, спасибо

Добавлено через 9 минут
А почему тогда другие View не ругаются? Я так пишу во всех View
Вот например Vocabulary
C#
1
2
3
4
5
        public ActionResult Vocabulary()
        {
            var item = db.Vocabulary;
            return View(item);
        }
А во View написано так
C#
1
@model IEnumerable <ASP.NET_MVC5_Bootstrap_3._3._4_LESS1.Models.Vocabulary>
И ничего не ругается

Добавлено через 6 минут
Хотя все понятно) Ienumerable Это и есть коллекция
0
22.03.2017, 17:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2017, 17:08

Создание связей между таблицами
Здравствуйте, очень сильно туплю, и понимаю это, но все же как связать таблицы между собой и...

Определение связей между таблицами
Доброго времени. Задание можно делать в &quot;режиме создателя&quot;, поэтому хотелось бы знать мнение - как...

Организация связей между таблицами в БД
Уважаемые профессионалы по рельсам, подскажите как правильно организовать БД. В результате надо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru