Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вложенные таблицы в EntityFramework CodeFirst / 2 сообщений из 2, страница 1 из 1
13.06.2014, 12:16
    #38668825
alexxaik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенные таблицы в EntityFramework CodeFirst
Прошу помочь мне с таким не сложным вопросом.
Для начала начну с того как организована у меня работа с базой.
Достаточно просто и по книжке.

Есть 2 Доменных класса.
New и Comment

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    public class New
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int NewID {get; set;}
        public string Title { get; set; }
        public string Body { get; set; }
        public List<Comment> Comments { get; set; }

        internal void SaveChanges()
        {
            throw new NotImplementedException();
        }
    }



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    public class Comment
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int CommentID { get; set; }
        public string Author { get; set; }
        public string Body { get; set; }
        public int NewID { get; set; }

        internal void SaveChanges()
        {
            throw new NotImplementedException();
        }
    }



Есть репозиторий для работы с классом New

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
    public class NewRepository : INewRepository
    {
        private EFCFDatebase context = new EFCFDatebase();
        public IQueryable<New> News
        {
            get { return context.News; }
        }
    }



Соответственно и класс базы данных

Код: c#
1.
2.
3.
4.
5.
    public class EFCFDatebase: DbContext
    {
        public DbSet<New> News { get; set; }
        public DbSet<Comment> Comments { get; set; }
    }



Вот контроллер где Я вытягиваю данные

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    public class NewsController : Controller
    {
        //
        // GET: /News/
        public INewRepository repoNew;
        public NewsController(INewRepository _repoNew)
        {
            repoNew = _repoNew;
        }

        public ActionResult New(int NewId)
        {
            New vModel = new New();
            vModel = repoNew.News.FirstOrDefault(n => n.NewID == NewId);
            return View(vModel);
        }

    }



А теперь вопрос .

Если рассмотреть класс New в нём есть Коллекция Comments
Code-First создаёт подчинённую структуру таблиц при первом обращении к базе.

И заполняет её данными из моего метода инициализатора .
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    public class DBInicializer : DropCreateDatabaseAlways<EFCFDatebase>
    {
        protected override void Seed(EFCFDatebase context)
        {
            //Create a list of Photo objects 
          var News = new List<New> 
          { 
             new New { 
                Title = "My First Photo", 
                Body = "This is part of the sample data",
                Comments = new List<Comment> { new Comment { Author = "aaa", Body = "bbb bbb" } }
             }, 
             new New { 
                Title = "My Second Photo", 
                Body = "This is part of the sample data"
             } 
          };
            //Add the list of photos to the database and save changes 
            News.ForEach(s => context.News.Add(s));
            context.SaveChanges();
        }
    }



Тогда почему когда Я вытягиваю данные из базы , мне возвращается объект New с коллекцией Comments равной null. ???????

Разве code - first не должен автоматически её заполнять ?
...
Рейтинг: 0 / 0
13.06.2014, 15:05
    #38668966
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вложенные таблицы в EntityFramework CodeFirst
alexxaik,

чтобы точно понять, что сработало, надо понимать, какие данные в таблицах в итоге оказались - то есть что возвращают
select * from News
select * from Comments
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вложенные таблицы в EntityFramework CodeFirst / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]