Je suis nouveau à Entity Framework. J'ai créé une application multi-niveaux, en MVC, en utilisant Ninject.
J'ai trois tables dans la base de données. Dites le tableau A, B et Tableau C. TableauEntité Entité-Cadre ne montrant pas les propriétés des entités apparentées
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
Mon application a un "service" qui sera appelé à partir d'un contrôleur MVC.
Le service agit comme un référentiel pour chaque entité (ie TableAService, TableBService), responsable de la création, lecture, mise à jour ou suppression d'entités du EF DataContext, ainsi que de la logique métier sur ces entités.
Dans mon contrôleur MVC, j'ai une référence au service approprié. Par exemple:
private TableAService _tableAService;
public TableAController(EFDataContext dataContext)
{
_tableAService = new TableAService(dataContext);
}
public ActionResult Index()
{
return View();
}
TableAService ressemblerait à quelque chose comme ceci:
private EFDataContext _dataContext;
public TableAService(EFDataContext dataContext)
{
_dataContext = dataContext;
}
public TableA GetById(int tableAId)
{
_dataContext.TableA.SingleOrDefault(ta => ta.TableAId == tableAId);
}
Je comprends que serait étroitement couplé à la source de données, ma mise en œuvre effective diffère légèrement du service de l'exemple, mais le concept est le même, J'ai un service avec un dataContext auquel j'aimerais retourner des entités.
QUESTION: - Lorsque je suis dans la méthode GetById dans TableAService, SingleOrDefault me donne une propriété de navigation TableB, ce qui me permet d'accéder à toutes les propriétés de TableB, y compris une propriété de navigation TableC. Cependant, lorsque je redonne la TableA au Contrôleur, je ne peux accéder à aucune des propriétés de TableB.
Au sein du service que j'ai aussi essayé:
private ObjectSet<TableA> _objSet = _dataContext.CreateObjectSet<TableA>();
et
return _objSet.SingleOrDefault(ta => ta.TableAId == tableAId);
Cela ne semble pas faire de différence de pouvoir accéder à la propriété de navigation TableC sur TableB de la Entité TableA.
Toute aide serait grandement appréciée!
Cheers,
James