gpt4 book ai didi

mysql - 带有 mysql 的 Entity Framework ,linux 和 windows 之间的表大写问题

转载 作者:可可西里 更新时间:2023-11-01 06:35:33 25 4
gpt4 key购买 nike

我们目前正在使用 Code First Entity Framework 和 Mysql 开发产品。开发数据库托管在 Windows 环境中,而生产 mysql 在 Linux 上。

我遇到的问题是 mysql 中的表是这样命名的:

 mydatabase.industry
mydatabase.account
...

Entity Framework 创建这样的查询:

  Select * FROM mydatabase.Industry;

注意大写字母。这在 Windows 的 mysql 上工作正常,但在 Linux 上我得到这个错误:

  Table 'mydatabase.Industry' doesn't exist

有什么想法吗?

最佳答案

Entity Framework 将使用与对象声明相同的名称(大写等)。因此,例如,如果您将模型对象声明为:

public class Industry
{
public int IndustryID { get; set; }
}

Entity Framework 将查找具有 IndustryID 列的 Industry 表。

您可以通过向模型添加注释来更改此设置。执行以下操作:

[Table("industry")]
public class Industry
{
public int IndustryID { get; set; }
}

通过这样做,您的对象仍将使用适当的 .NET 命名方案,但它会匹配您相应的数据库。您还可以使用 ColumnAttribute 更改列的名称.

或者,您可以更改 MySQL 中的表名。

关于mysql - 带有 mysql 的 Entity Framework ,linux 和 windows 之间的表大写问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9445678/

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