带有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更改表名。 |
|
|
|
|
|