6

使用 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");
            });

我已经看到只有当两个表中都存在实体主键时才能进行实体拆分的评论?

提前致谢。

4

1 回答 1

2

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

于 2011-02-17T17:25:17.943 回答