实体框架CTP5代码优先 - 可以在非主键上进行实体拆分吗?

Col*_*Col 6 entity-framework code-first entity-framework-ctp5

使用EF CTP5,我试图做一些实体拆分,其中实体是从两个单独的表构造的.如果两个表上的键不是主键,是否可以进行拆分?

例如,Id是我在Note实体上的主键.我想从单独的表中获取我的CreatedUser详细信息,但第二个表上的主键对应于Note实体中的CreatedUserId.

        modelBuilder.Entity<Note>()
            .Map(mc =>
            {
                mc.Properties(n => new
                {
                    n.Id,
                    n.Title,
                    n.Detail,
                    n.CreatedUserId,
                    n.CreatedDateTime,
                    n.UpdatedUserId,
                    n.UpdatedDateTime,
                    n.Deleted,
                    n.SourceSystemId,
                    n.SourceSubSystemId
                });
                mc.ToTable("Notes");
            })
            .Map(mc =>
            {
                mc.Properties(n => new
                {
                    n.CreatedUserId,
                    n.CreatedUser
                });
                mc.ToTable("vwUsers");
            });
Run Code Online (Sandbox Code Playgroud)

我看过注释只有在两个表中都存在实体主键时才能实现实体拆分?

提前致谢.

Mor*_*avi 2

是的,在实体拆分场景中生成的所有表都必须将对象标识符(例如 Note.Id)作为其主键。在这种情况下,您应该考虑在 User 和 Note 实体之间创建 1:* 关联。