Ich habe einfach zwei Klassen (auch Tabellen - mit Code-zuerst mvc5) Wenn ich versuche, Benutzer zu bekommen, kommt die Firma des Benutzers nicht mit EF6. Warum ist das?Entity Framework wird nicht verknüpft Tabelle
Modell:
public class TblUser
{
public int Id { get; set; }
public string UserName { get; set; }
public bool Gender { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public TblCompany TblCompany { get; set; }
}
public class TblCompany
{
public int Id { get; set; }
public string CompanyName { get; set; }
public string Email { get; set; }
public List<TblUser> TblUsers { get; set; }
}
Kontext:
public class DBContext : DbContext
{
public DbSet<TblCompany> TblCompanies { get; set; }
public DbSet<TblUser> TblUsers { get; set; }
}
Service:
private DBContext db = new DBContext();
public TblUser GetUserById(int id, bool showHidden = false)
{
return db.TblUsers.FirstOrDefault(x => x.Id == id && (!x.isDeleted || showHidden));
}
Aktion:
public class SupplierHomeController : Controller
{
// GET: Supplier/SupplierHome
public ActionResult Index()
{
UserService _srvUser = new UserService();
//User info will be come from Session in the future
//The User whose id is 1 is only for testing.
TblUser u = _srvUser.GetUserById(1);
//After that line, users's company is null! :(
//However there is a company linked to the user.
SupplierDashboardViewModel model = new SupplierDashboardViewModel();
model.TblUser = u;
return View(model);
}
}
Wenn ich versuche, einen Benutzer aus der Datenbank abzurufen, wird die Firmeninfo nur auf Null gesetzt. Ich bin so verwirrt.
Das funktioniert lesen! Vielen Dank. Aber in meinen älteren Projekten konnte ich automatisch ganze Entitäten bekommen. In diesem Verfahren muss ich 'include' warum verwenden? –
@ PolatFevziDündar in Ihrem älteren Projekt möglicherweise haben Sie Lazy loading gemacht ist falsch in Ihrer Kontext-Klasse mit 'context.Configuration.LazyLoadingEnabled = false;' – Curiousdev
Ok. Ich verstehe es jetzt. Vielen Dank!! –