【问题标题】:Entity Framework Data Annotations not working for [Table("")] in differnet languages?实体框架数据注释不适用于不同语言的 [Table("")]?
【发布时间】:2016-09-09 19:53:30
【问题描述】:

我有一些客户在使用我们的应用程序时遇到问题,因为它正在查看错误的表名。

为了让您了解一些历史,我们曾经在数据库中有一个名为“Users”的用户表。在较新的版本中,我们将此表更改为“cp_Users”。我们在类上放置了一个 [Table("cp_Users")] 属性并更新了迁移以重命名表:

[Table("cp_Users")]
    public partial class Users
    {

RenameTable(name: "dbo.Users", newName: "cp_Users");

现在我的环境与其他两个环境之间的唯一区别是语言。我的系统是英文的,他们的系统是瑞典文的(SQL 是 Finnish_Swedish_CI_AS)

这是我做错了还是可能是一个错误?为什么他们的代码仍然寻找“用户”表而不是“cp_Users”

【问题讨论】:

  • 所以我发现它部分工作。发生的事情是它能够从 cp_Users 表中读取,但是当调用 db.SaveChanges() 时,它正在寻找表“Users”而不是“cp_Users”
  • 我得到了问题数据库的副本,并将其放在英文系统上,它似乎没有问题。然而,它是一个完全不同的系统(相同的数据库),所以它可能不是文化......只是说明我在故障排除过程中发现的内容。

标签: c# entity-framework entity-framework-6 data-annotations


【解决方案1】:

我最终弄明白了,它与 Entity 无关。我发现表上还有一个旧触发器仍然指向旧表名。

显然实体可以在更新表时触发错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多