回答

收藏

带有mysql实体框架,Linux和Windows表大小写之间的问题

技术问答 技术问答 193 人阅读 | 0 人回复 | 2023-09-14

我们目前正在使用它Code First Entity
4 u3 u" {( j5 L* \# s8 {Framework和Mysql开发产品。开发数据库托管Windows生产在环境中mysql在Linux上。
+ A! @% u) G1 J; a$ J; H' u5 e* n8 ?我遇到的问题是mysql中表是这样命名的:: h( p" u4 [# H6 m
    mydatabase.industry mydatabase.account ...创建以下实体框架查询:& b4 r/ c: n( G3 Q
        Select * FROM mydatabase.Industry;注意大写字母Windows上的mysql工作正常,但在Linux我收到了这个错误:+ K" m0 @. |" v$ _# b
        Table 'mydatabase.Industry' doesn't exist有什么想法吗?( f; |8 @, f3 t6 h) r+ l, L  _; c
                                                               
% L* ]/ }9 b# r) B' c    解决方案:                                                                ( @4 O6 C& }1 z! d+ H
                                                                实体框架将使用与对象声明的名称相同的名称(大写字母等)。因此,例如,如果您将模型对象声明为:
& R: T; E- K7 L( o6 Q$ c; `: spublic class Industry{  public int IndustryID { get; set; }}实体框架将找到带IndustryID列的Industry表。
5 P. N4 {# ?- @8 L+ o7 H5 ^在模型中添加注释可以更改此设置。请执行以下操作:- R1 e2 z) Y8 }* }# W
[Table("industry")]public class Industry{  public int IndustryID { get; set; }}这样,您的对象仍将使用适当的对象.NET命名方案,但它将匹配您的相应数据库。您也可以使用它ColumnAttribute更改名称。
3 c: x/ E5 S) M( ^  T另外,你可以在那里MySQL更改表名。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则