Ich möchte ein Objekt zu einer verbundenen Entität hinzufügen, ohne sie zu laden. I Unternehmen Einheit haben wie folgt definiert:Entity Framework Objekt zu verknüpfter Entität ohne Laden hinzufügen
public class Company
{
public int ID { get; set; }
public List<Employee> EmployeeList{ get; set; }
}
und Mitarbeiter-Unternehmen wie dieses
public class Employee
{
public int ID { get; set; }
public String Name{ get; set; }
}
ich einen Mitarbeiter zu einer Liste in diesem Unternehmen Objekt platziert hinzufügen möchten alle Mitarbeiter ohne Beladung.
Ich weiß, dass ich diesen Ausdruck Company myCompany= systemBD.Companies.Include("EmployeeList").Find(1) myCompany.EmployeeList.Add(newEmployee)
verwenden kann, aber ich habe Angst, dass dies eine Menge Zeit verbrauchen würde, da ich Tausende von Mitarbeitern in meiner Datenbank habe.
Gibt es eine Möglichkeit, einen neuen Mitarbeiter zu einer bestehenden Firma hinzuzufügen, ohne die Liste der Mitarbeiter zu laden? Ich habe die Attach-Methode untersucht, aber es scheint nicht zu funktionieren.
using (var systemDB = new CompanyDB())
{
Employee employee = new Employee();
Company companySearch = systemDB.Companies.Where(d => d.Name.Equals("John")).SingleOrDefault();
if (companySearch != null)
{
if (companySearch.EmployeeList != null)
{
systemDB.Companies.Attach(companySearch);
companySearch.EmployeeList.Add(employee);
systemDB.SaveChanges();
}
}
Ich habe diesen Code versucht, aber es funktioniert nicht.
Was ist die Variable 'deviceSearch', da sie nirgendwo im von Ihnen bereitgestellten Code definiert ist? Sollte es nicht 'companiesSearch.EmployeeList.Add (employee); '? –
Bitte benutzen Sie zuerst die Datenbank oder den ersten Code? – suulisin
Ich denke, das ist Code-zuerst wegen des Beispiels, das er – Rafa