次のような外部キーを持つコード ファースト モデルを使用してみましょう。
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; のような構造を記述します。employee.Company = _companyRepo.GetById(1)。
- Employee(Company company) のようなコンストラクタを作成します。コードは小さくなりますが、私の観点からは理想的ではありません
誰でもより良い解決策を知っていますか?