我想到的是做这样的事情:
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'用户'没有密钥 定义。定义此EntityType的键。 \ tSystem.Data.Entity.Edm.EdmEntitySet:EntityType:EntitySet'Users' 基于没有定义键的“用户”类型。
我错过了什么?是不是还要编写一个自动迁移到sql表的类(Code First)?
谢谢!
答案 0 :(得分: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表(代码优先)?
是的,当您的代码需要使用它将创建的类时,或者您可以使用scaffolding。 我现在使用迁移工具强制快速创建所有表。参见例如MSDN article about migration tool Blog about migration