我无法获得实体框架来将我的域实体类与Value Objects(复杂类型)字段展平为一个表.
如果我告诉模型构建器忽略我的值对象/复杂类型,那么一切都有效,但这会导致我的表中遗漏了值对象的所有属性.一旦我删除了忽略语句,我就会得到"跨多个实体共享的值在多个位置创建".如果我查看生成的CE SQL文件,我会看到一个以我的Domain类命名的附加表,该表附加了1并且只包含Value Object参数.
一些代码:
我的域名类:
public User {
private User(){}
public long Id {get; private set;} // dont ask, inherited legacy database
public string UserId { get; private set; }
public string Domain { get; private set; }
public AuditIformation AuditDetails {get ; private set;}
//..domain logic etc
}
public AuditInformation : IValueObject {
public long CreatedByUserId { get; private set; }
public DateTime CreatedDate { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
我的存储库项目(首先是代码)得到了这个:
public partial class myContext : DbContext …Run Code Online (Sandbox Code Playgroud)