Entity Framework 上的 ForeignKey 属性

ForeignKey attribute on Entity Framework

假设我有一个 class 拍卖会

public class Auction {
[Key]
public int Id { get; set;}

public User Seller {get; set;}
public User Winner {get; set;}
}

和一个 class 用户

public class User {

[Key]
public string Username {get;set;}
public string Password {get; set;}
}

如何在 Visual Studio 上使用 ForeignKey 属性将 Seller 和 Winner 设置为 FK?

编辑

我使用 [key] 属性是因为我在数据库中有其他表并且它们的 PK 不称为 id,所以我在每个 class 中使用属性 [key] 来使用相同的样式。

当我尝试使用现有用户上传拍卖的卖家时,它说

The ForeignKeyAttribute on property 'Seller' on type 'Database.Auction' is not valid. The foreign key name 'User' was not found on the dependent type 'Database.Auction'. The Name value should be a comma separated list of foreign key property names.

正是出于这个原因,我想指定 FK

他们已经在你的 Auction class 中被 FK。它们将被映射为 FK。您以后可能想使用延迟加载,所以:

public class Auction {
   public int Id { get; set;}

   public virtual User Seller {get; set;}
   public virtual User Winner {get; set;}
}

此外,您不需要 属性 上面的 [Key] 注释称为 Id

编辑问题后更新:

您可能需要启用迁移。转到包管理器控制台,如果它没有打开,您可以通过 Visual Studio.

菜单栏的菜单视图打开它

然后在里面写enable-migrations回车,然后把生成的class里的AutomaticMigrations设置成true,然后再在Package Manager控制台里写update-database , 运行 你的申请。

脚注:

你没有说明你正在创建什么样的应用程序,但通常保留用户密码是个坏主意。您通常假设保留它的散列版本。