C# 实体框架代码第一个属性的名称与约定不同

C# 实体框架代码第一个属性的名称与约定不同,c#,entity-framework-4,C#,Entity Framework 4,我首先使用实体框架代码进行以下设置:- public Player { [Key] public int PlayerId { get; set; } public int? ClubId { get; set; } public virtual Club Club { get; set; } } public class Club { public int ClubId { get; set; } public string Name {

我首先使用实体框架代码进行以下设置:-

public Player
{
    [Key]
    public int PlayerId { get; set; }

    public int? ClubId { get; set; }
    public virtual Club Club { get; set; }
}

public class Club
{
    public int ClubId { get; set; }

    public string Name { get; set; }
}
我想将“Player”类中的属性“Club”重命名为“CurrentClub”,因为这在我的应用程序中更有意义,但是这失败了,因为它没有遵循EF开箱即用的命名约定

如何成功重命名该属性

从我所看到的,我认为我可以使用[ForeignKeyName]属性,但是我找不到它的引用。我可以看到帖子说它已经移动了名称空间……但我仍然找不到它。我正在使用.NET 4.0,但我的计算机上安装了.NET 4.5


ForeignKey属性是正确的方法,还是需要进行一些模型绑定?如果是这样,我需要什么?

您可以尝试将[ForeignKeyClubId]放在公共虚拟俱乐部{get;set;}上,然后将[ColumnClub]放在公共虚拟俱乐部CurrentClub{get;set;}上吗?出于某种原因,我没有ForeignKey属性。DataAnnotations的.NET 4.0 DLL没有它。我可以找到您使用的名称空间是什么?使用System.ComponentModel.DataAnnotations.Schema;我想知道为什么我没有那个。事实证明,我的项目中没有安装EntityFramework。我的域对象与我的DBContext位于一个单独的项目中。。。这就是我的困惑。我通过Nuget安装了这个软件包,并使用了您的属性建议,它很有效!谢谢你的帮助。