小编Joe*_*Joe的帖子

EF6:代码优先复杂类型

我无法获得实体框架来将我的域实体类与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)

c# domain-driven-design entity-framework sql-server-ce

10
推荐指数
1
解决办法
1万
查看次数