Wir haben kürzlich die Implementierung von ADO.NET in Repository Pattern geändert und Entitäten mithilfe von Entity Framework generiert.Repository Pattern Zugriff auf mehrere Tabellen?
Jetzt versuche ich auf 2 Tabellen (Accounts und Submission) zugreifen und ich bekomme keine Include-Methode für den Zugriff auf die zweite Tabelle. Um auf einzelne Tabelle zuzugreifen, gibt die SelectAll-Methode alle erforderlichen Daten aus. Woran mache ich hier falsch?
Schätzen Sie Ihre Antworten.
Hier ist mein Code:
public class GPController : ApiController
{
private readonly IRepository<Account> _acctRepository;
private readonly IRepository<Submission> _subRepository;
public GPController(IRepository<Account> acctRepository, IRepository<Submission> subRepository)
{
_acctRepository = acctRepository;
_subRepository = subRepository;
}
[HttpPost]
public IHttpActionResult CreateAccount(Account account)
{
try
{
_acctRepository.Insert(account);
_acctRepository.Save();
return Ok<bool>(true);
}
catch (Exception ex)
{
throw ex;
}
}
[HttpPost]
public IHttpActionResult CreateSubmission(Submission submission)
{
try
{
_subRepository.SelectAll().ToList();
_subRepository.Save();
return Ok<bool>(true);
}
catch (Exception ex)
{
throw ex;
}
}
[HttpGet]
public IHttpActionResult GetAccountTreeDetails()
{
try
{
var accounts = _acctRepository.SelectAll().ToList();
var submissions = _subRepository.SelectAll().ToList();
//if (submissions.Any())
//{
// var data = from a in accounts
// left join s in submissions on a.AccountId equals s.AccountId
// select a;
//}
//var data = from acct in _acctRepository
// join sub in _subRepository on acct.AccountId equals sub.AccountId
// select acct;
return Ok<List<Account>>(result);
}
catch (Exception ex)
{
throw ex;
}
}
}
Hier AccountTable ist die primäre Tabelle, die AccountID hat. WhereAs-Übermittlungstabelle hat AccountID, die Fremdschlüssel aus Account-Tabelle ist. Hier
Hier ist die Submission Tabelle:
Was die Beziehung zwischen Konten und Einreichungen - 1-n, 1-1 ... –
Konto Tabelle ist die primäre Tabelle, die AccountID hat. Während die Tabelle "Submissions" über die AccountID verfügt, bei der es sich um einen Foriegn-Schlüssel handelt, auf den in der Tabelle "Accounts" verwiesen wird – Ritha
Ich gehe davon aus, dass Sie versuchen, GetAccountTreeDetails() zu beheben. Was möchten Sie abrufen? Alle Einreichungen, die sich auf einen Account oder alle Accounts und damit verbundenen Einreichungen beziehen? BTW CreateSubmission() -Methode scheint nichts zu tun - ich bin mir nicht sicher, was Sie hier erreichen wollen? –