我首先使用 EF5 代码来生成数据库架构,但我的新导航属性在表中以不合需要的方式命名。这是我正在使用的模型。
public class User
{
[Key]
public long UserId { get; set; }
...
**public virtual ICollection<ImagePermission> KeepThisNavigationName { get; set; }**
}
但是,在我更新数据库并检查表列后,该列被命名为:
dbo.ImagePermission.User_UserId
我希望将其命名为
dbo.ImagePermission.KeepThisNavigationName_UserId
我相信有一种方法可以使用 Fluent API 来做到这一点,但经过多次失败的尝试后,我无法得到想要的结果。
附注“ImagePermission”实体目前仍在开发中,因此我宁愿放弃创建此表的迁移,以便我可以在表创建期间正确创建此列名称,而不是使用额外的代码来更新列名称。
非常感谢,奥利弗
Fluent API 的正确映射是:
modelBuilder.Entity<User>()
.HasMany(u => u.KeepThisNavigationName)
.WithOptional() // or WithRequired()
.Map(m => m.MapKey("KeepThisNavigationName_UserId"));
如果您有导航属性ImagePermission
指的是User
你需要使用WithOptional(i => i.User)
(or WithRequired(i => i.User)
) 而不是无参数版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)