让我使用带有外键的代码优先模型,例如:
class Employee
{
public int EmployeeId { get; set; }
public int CompanyId { get; set; }
[ForeignKey("CompanyId")]
public virtual Company Company { get; set; }
}
我想在我的商务服务查询中使用,例如:
class EmployeeService
{
...
var company = employee.Company; // <-- it is substituted by Entity Framework
...
}
问题是如何在我的单元测试中替换外键导航属性(如 Employee.Company)?
至于我,我找到了这些解决方案:
- 编写类似employee.CompanyId = 1的结构;员工.公司 = _companyRepo.GetById(1)。
- 创建像 Employee(Company company) 这样的构造函数。它会使代码更小,但从我的角度来看并不理想
有谁知道更好的解决方案?