Я новичок в Entity Framework.Я создал многоуровневое приложение в MVC, используя Ninject.
У меня есть три таблицы в базе данных.Скажем, Таблица A, Таблица B и Таблица C.
Table A has a foreign key relating it to Table B
Table B has a foreign key relating it to Table C
Table A => Table B => Table C
Мое приложение имеет «службу», которая будет вызываться из контроллера MVC.
Служба действует как хранилище для каждого объекта (например, TableAService)., TableBService), который отвечает за создание, чтение, обновление или удаление объектов из EF DataContext, а также за возможное выполнение бизнес-логики для этих объектов.
В моем контроллере MVC у меня есть ссылка на соответствующую службу.Например:
private TableAService _tableAService;
public TableAController(EFDataContext dataContext)
{
_tableAService = new TableAService(dataContext);
}
public ActionResult Index()
{
return View();
}
TableAService будет выглядеть примерно так:
private EFDataContext _dataContext;
public TableAService(EFDataContext dataContext)
{
_dataContext = dataContext;
}
public TableA GetById(int tableAId)
{
_dataContext.TableA.SingleOrDefault(ta => ta.TableAId == tableAId);
}
Я понимаю, что служба примера будет тесно связана с источником данных, моя фактическая реализация немного отличается, но концепциято же самое, у меня есть служба с dataContext, из которой я хотел бы вернуть сущности.
ВОПРОС: - Когда я в методе GetById в TableAService, SingleOrDefault дает мне свойство навигации TableB,который позволяет мне получить доступ ко всем свойствам TableB, включая свойство навигации TableC.
Однако, когда я передаю TableA обратно в контроллер, я не могу получить доступ ни к одному из свойств TableB.
В пределахСлужба, которую я также пробовал:
private ObjectSet<TableA> _objSet = _dataContext.CreateObjectSet<TableA>();
и
return _objSet.SingleOrDefault(ta => ta.TableAId == tableAId);
Кажется, это не имеет никакого значения для возможности доступа к свойству навигации TableC в TableB из сущности TableA.
Любая помощь будет принята с благодарностью!
Приветствия,
Джеймс