gpt4 book ai didi

entity-framework-5 - 如何为 EF5 导航属性指定列名称

转载 作者:行者123 更新时间:2023-12-01 01:08:26 24 4
gpt4 key购买 nike

我首先使用 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) (或 WithRequired(i => i.User) )而不是无参数版本。

关于entity-framework-5 - 如何为 EF5 导航属性指定列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16874887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com