我正试图利用Julie Lerman所谓的Bounded Context。对于我的域模型,我有Employee,Customer,InventoryItems,SalesOrderHeader&的SalesOrderDetail。销售订单标题有两个属性:
public Guid EmployeeId { get; set; }
[ForeignKey("EmployeeId")]
public virtual Employee SalesPerson { get; set; }
现在,销售订单上下文不需要知道员工的社会安全号码,也不需要知道他的薪水等。所以我创建了一个EmployeeReference模型:
[Table("Employees")]
public class EmployeeReference
{
[Key]
public Guid Id { get; set; }
[StringLength(25, MinimumLength = 3)]
public string FirstName { get; private set; }
[StringLength(25, MinimumLength = 3)]
public string LastName { get; private set; }
public string FullName => string.Format("{0} {1}", FirstName, LastName);
}
要为销售订单创建有界的上下文,我只包括SalesOrderHeader,SalesOrderDetail,InventoryItems,Customer& EmployeeRefererence而忽略Employee表。
现在,我的销售订单标题出现错误,导致Employee对象无法映射为null。
我的解决方案是在销售订单标题中注释掉SalesPerson属性,但保留EmployeeId,然后运行EntityFramework迁移。
因为SalesPerson属性是虚拟的,我不能只覆盖属性吗?只有一个Id参考优于同时具有对象引用和Id引用吗?