gpt4 book ai didi

ef-code-first - EF 4.1搞砸了。 FK命名策略是否已更改?

转载 作者:行者123 更新时间:2023-12-04 04:19:15 31 4
gpt4 key购买 nike

我刚刚安装了新的Entity Framework 4.1 NuGet包,因此根据NuGet指令和this article of Scott Hanselman替换了EFCodeFirst包。

现在,想象一下以下模型:

public class User
{
[Key]
public string UserName { get; set; }
// whatever
}

public class UserThing
{
public int ID { get; set; }
public virtual User User { get; set; }
// whatever
}

上一个EFCodeFirst版本在 UserThing表中生成了一个名为 UserUserName的外键。

安装新版本并运行后,出现以下错误:
Invalid column name 'User_UserName'

当然,这意味着新版本具有不同的FK命名策略。这在所有其他表和列中是一致的:名为 AnyOldForeignKeyID的任何FK EFCodeFirst EF 4.1都想调用 AnyOldForeignKey_ID(请注意下划线)。

我不介意用下划线命名FK,但在这种情况下,这意味着必须不必要地丢弃数据库并重新创建它,或者不必要地重命名所有FK。

有谁知道为什么FK命名约定已更改以及是否可以在不使用Fluent API的情况下对其进行配置?

最佳答案

不幸的是,此版本未实现的功能之一是可以在Code First中添加自定义约定:

http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-release-candidate-available.aspx

如果您不想使用fluent API来配置列名(我不怪您),那么最直接的方法可能是使用sp_rename

关于ef-code-first - EF 4.1搞砸了。 FK命名策略是否已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5344474/

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