0

想到的是做这样的事情:

public class UserProfile
{
    [Key]
    [Column(Order = 0)]
    [ForeignKey("User")]
    public Guid UserId { get; set; }

    public virtual User User { get; set; }

    // Additional user info
}

但我收到此错误:

\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'User' 没有定义键。定义此 EntityType 的键。\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'Users' 基于没有定义键的类型'User'。

我错过了什么?反正没有写一个自动迁移到sql表的类(代码优先)吗?

谢谢!

4

1 回答 1

0

如果不清楚什么是主键,则只需要 [Key] 注释。但约定是它的类名以 Id 结尾,并且您需要 User 类中的 UserId 属性。所以恕我直言,我认为应该是这样的:

    public class UserProfile
    {
        [Key]
        public UserProfileId
        public Guid UserId { get; set; }
      [ForeignKey("UserId")]
        public virtual User User { get; set; }
        // Additional user info
    }

我错过了什么?反正没有写一个自动迁移到sql表的类(代码优先)吗?

是的,当您的代码需要使用将创建的类时,或者您可以使用脚手架。我现在使用迁移工具来强制快速创建所有表。参见例如这里关于迁移工具的 MSDN 文章 关于迁移 的博客

于 2012-09-03T20:00:55.260 回答