实体框架数据注解在不同语言中对[Table(“”)]不起作用?

问题描述:

我有一些客户与我们的应用程序有问题,因为它正在查看错误的表名。实体框架数据注解在不同语言中对[Table(“”)]不起作用?

为了给你一点历史,我们曾经有一个用户表在数据库中被命名为“用户”。在新版本中,我们将此表更改为“cp_Users”。我们把一个表(“cp_Users”)]属性的类和更新迁移到重命名表:

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

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

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

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

+0

所以我发现它是部分工作。发生了什么是它能够从cp_Users表中读取,但是当调用db.SaveChanges()时,它正在查找表“Users”而不是“cp_Users” – Jacob

+0

我得到了问题数据库的一个副本,并将其放在一个英文系统,似乎没有问题。然而,它是一个完全不同的系统(相同的数据库),所以它可能不是文化......只是说明在我的故障排除过程中发现的内容。 – Jacob

我最终搞清楚了,它与实体无关。我发现桌子上还留着旧的扳机,仍然指向旧的桌子名称。

当更新表格时,显然实体可能会拾取触发器错误。