簡體   English   中英

實體框架導航屬性不起作用

[英]Entity Framework Navigation property not working

我有如下所示的多對多關系。

  • Company [CompanyID,Name]-導航道具SalaryTabs
  • SalaryTab [ID,Salary,Since,CompanyId,Employeeid]-導航道具(公司,員工)和
  • Employee [EmployeeID,FirstName,LastName,DOB] -nav prop
    (SalaryTabs)

但是,當我嘗試使用Linq使用navigation屬性查詢表時。 它不會完全顯示在智能中。

例如,我要訪問contxt.SalaryTabs.Company.xxx導航屬性Company將不會加載xxx,並且不會顯示在智能中,如果我手動鍵入它。 我遇到一些錯誤。

如果我嘗試做類似的事情

//Delete an employee (identified via id) from a specific company(identified via id)

public bool DeleteEmployeeFromSpecificCompany(Guid employeeID, Guid companyID)
{
    try
    {
        var emp = dbContext.Employees.FirstOrDefault(x => x.EmployeeID == employeeID);
        dbContext.Companies.FirstOrDefault(x => x.CompanyID == companyID).SalaryTabs.Employee.Remove(emp);

        dbContext.SaveChanges();
    }
    catch (Exception)
    {
        return false;
    }
    return true;
}

導航屬性無效。 例如,我無法訪問context.Companies.SalaryTab.xxxx。 從昨天開始我就一直遇到這個問題,這是我以前從未有過的。 我可以使用導航屬性從一個實體導航到另一個實體,但是現在它不再加載並提供選項。

感謝您的投入。

我只是再也無法像以前那樣在實體之間導航。 我有要刪除的員工實體,導航無法讓我通過。 我沒有選擇要訪問的屬性的選項。 我昨天整天都在嘗試,直到現在都一樣。

var emp = dbContext.Employees.FirstOrDefault(x => x.EmployeeID == employeeID);

            dbContext.Companies.FirstOrDefault(x => x.CompanyID == companyID).SalaryTabs.Employee.Remove(emp);

            dbContext.SaveChanges();

SalaryTabs-是集合。 因此,您需要選擇一個:

dbContext.Companies.FirstOrDefault(x => x.CompanyID == companyID).SalaryTabs.FirstOrDefault(...condition...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM