实体框架 CTP5 Code First - 是否可以在非主键上进行实体拆分?

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

我看到有评论说,只有在两个表中都存在实体主键时,才能进行实体分割?提前感谢。
1个回答

2

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


感谢Morteza的确认和快速回复。我明天将开始实施1.*! - Col

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接