我需要配置以下类的关系: 用户是否有个人资料。结构体: 用户: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 ,没有定义键。
请帮忙。
感谢。
答案 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; }
}