删除 EF 代码第一个外键 table 列中的 table 名称前缀
Remove table name prefix in EF code first foreign key table column
我有两个实体
Room{
[Key]
public int RoomID {get;set;}
public String RoomName {get;set;}
public List<Member> ListMember {get;set;}
}
Member {
[Key]
public int MemberID {get;set;}
public String MemberName {get;set;}
public Room Room {get;set;}
}
生成数据库时,table成员看起来像:
Member(
MemberID int,
MemberName nvarchar.
Room_RoomID int //references to Room(RoomID)
)
我希望外键列的名称为 RoomID
(与 Room 的原始名称相同)而不是 (Room_RoomID)
。
我该怎么做?
您有多种选择:
在 Member
实体中声明 RoomId
FK 属性 并使用
ForeignKey
数据注释:
public classMember {
[Key]
public int MemberID {get;set;}
public String MemberName {get;set;}
[ForeignKey("Room")]
public int RoomID {get;set;}
public Room Room {get;set;}
}
Code First 约定创建与 属性 名称相同的列名称。
如果您不想在您的 Member
实体中声明 RoomId
FK 属性,您可以在您的 OnModelCreating
实体中覆盖 OnModelCreating
方法上下文 class 到
配置您的关系并使用
MapKey
方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Member>().HasRequired(m=>m.Room).WithMany(r=>r.ListMember).Map(a => a.MapKey("RoomId"))
}
现在,如果您声明 RoomId
FK 属性 但您想更改 Members
table 中该列的名称,您可以使用Column 数据注释。
我有两个实体
Room{
[Key]
public int RoomID {get;set;}
public String RoomName {get;set;}
public List<Member> ListMember {get;set;}
}
Member {
[Key]
public int MemberID {get;set;}
public String MemberName {get;set;}
public Room Room {get;set;}
}
生成数据库时,table成员看起来像:
Member(
MemberID int,
MemberName nvarchar.
Room_RoomID int //references to Room(RoomID)
)
我希望外键列的名称为 RoomID
(与 Room 的原始名称相同)而不是 (Room_RoomID)
。
我该怎么做?
您有多种选择:
在
Member
实体中声明RoomId
FK 属性 并使用ForeignKey
数据注释:public classMember { [Key] public int MemberID {get;set;} public String MemberName {get;set;} [ForeignKey("Room")] public int RoomID {get;set;} public Room Room {get;set;} }
Code First 约定创建与 属性 名称相同的列名称。
如果您不想在您的
Member
实体中声明RoomId
FK 属性,您可以在您的OnModelCreating
实体中覆盖OnModelCreating
方法上下文 class 到 配置您的关系并使用MapKey
方法:protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Member>().HasRequired(m=>m.Room).WithMany(r=>r.ListMember).Map(a => a.MapKey("RoomId")) }
现在,如果您声明 RoomId
FK 属性 但您想更改 Members
table 中该列的名称,您可以使用Column 数据注释。