Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF6. Заполнить навигационные свойства с помощью хранимой процедуры. / 3 сообщений из 3, страница 1 из 1
17.09.2014, 18:03
    #38749546
Шамиль Фаридович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EF6. Заполнить навигационные свойства с помощью хранимой процедуры.
Приведу пример, есть 2 класса, книга и автор, у каждой книги 1 автор, у автора может быть много книг.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class Book
{
public int Id { get; set; }
public string Title { get; set; }
public Author Author { get; set; }
}

public class Author
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime? Birthdate { get; set; }
public virtual ICollection<Book> Books { get; set; }
}



Использую Entity Framework 6, подход Code First.
Как получить книгу с автором? Можно сделать так:
Код: c#
1.
2.
3.
4.
5.
6.
        public Book GetByIdWithAuthor(int id)
        {
            var query = _dbcontext.Set<Book>().Include(b => b.Author) as IQueryable<Book>;

            return query.FirstOrDefault(b => b.Id == id);
        }


Но как заставить EF считать книгу и ее автора из ХП?
Метод
Код: c#
1.
2.
3.
4.
public Book GetByIdWithAuthor(int id)
        {                                                
            return _dbcontext.Set<Book>().SqlQuery("dbo.GetBookByIdWithAuthor @p0", id).FirstOrDefault();
        }


не заполняет свойство книги Author не смотря на то, что ХП возвращает тот же набор полей, что и сгенерированный EF запрос.
...
Рейтинг: 0 / 0
17.09.2014, 18:27
    #38749569
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EF6. Заполнить навигационные свойства с помощью хранимой процедуры.
...
Рейтинг: 0 / 0
17.09.2014, 19:30
    #38749631
Шамиль Фаридович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EF6. Заполнить навигационные свойства с помощью хранимой процедуры.
Оно, но я надеялся, что кто-нибудь уже придумал свой велосипед.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF6. Заполнить навигационные свойства с помощью хранимой процедуры. / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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