没有外键的一个或零到多个关系

时间:2012-09-24 13:02:46

标签: asp.net-mvc-3 entity-framework c#-4.0 ef-code-first

我需要配置以下类的关系: 用户是否有个人资料。结构体: 用户:UserID,用户名,密码 配置文件:UserID,FullName,Address,Phone

public class User
{
    #region Feilds
    public int UserID { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    #endregion

    public virtual Profile Profile { get; set; }
}

public class Profile
{
    #region Fields
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Phone { get; set; }
    public string Address { get; set; }
    #endregion

    public virtual User User { get; set; }
}

配置:

public class UserConfiguration : EntityTypeConfiguration<User>
{
    public UserConfiguration()
        : base()
    {
        // Primary Key
        this.HasKey(p => p.UserID);

        //Foreign Key
        this.HasOptional(p => p.Profile).
            WithMany().
            HasForeignKey(p => p.UserID);
    }
}

错误:

System.Data.Edm.EdmEntityType :: EntityType'Profile'没有定义键。定义此EntityType的键。 System.Data.Edm.EdmEntitySet:EntityType:EntitySet Profiles 基于类型 Profile ,没有定义键。

请帮忙。

感谢。

1 个答案:

答案 0 :(得分:1)

实体框架中的每个实体都必须定义主键。您的个人资料实体应该看似摆脱当前的错误:

public class Profile
{
    #region Fields
    public int Id {get;set;}
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Phone { get; set; }
    public string Address { get; set; }
    #endregion

    public virtual User User { get; set; }
}