EF6+ORACLE11G 生成的实体模型,数据库用户名变更后,怎么修改EF中的用户

时间:2021-02-15 12:01:38

EF6+ORACLE11G 生成的实体模型 开发环境的用户名是JLLC63,正式发布环境数据库用户是JL,如何能直接修改实体类的所属用户,或者直接清楚所属用户,直接根据连接用户做为实体类用户。
现在每次在变更用户后,都要将EF模型清空,从新从数据库中重新生成
后期程序发布后,数据库用户名肯定是不确定的。
EF6+ORACLE11G 生成的实体模型,数据库用户名变更后,怎么修改EF中的用户

10 个解决方案

#1


why you just change the connection string in app.config file of your project?

just search your current user name in your solution, you will find the connection string there.

#2


引用 1 楼 q107770540 的回复:
why you just change the connection string in app.config file of your project?

just search your current user name in your solution, you will find the connection string there.


修改连接字符串我知道,但这个修改了是没有用的,

比如原来的我的连接的是用户名 jllc63  后来我把连接用户名改成了jl  连接的时候是用了这个用户名,但实际操作数据库的时候,仍然会去操作jllc63下的表

就好比   select * from jllc63.table     EF在生成的SQL语句中加上了表的前缀,只是修改了连接字符串是没有用的

#3


修改了连接字符串就查的是不同的数据库了,楼主,你再想想 EF6+ORACLE11G 生成的实体模型,数据库用户名变更后,怎么修改EF中的用户

#4


引用 3 楼 changjiangzhibin 的回复:
修改了连接字符串就查的是不同的数据库了,楼主,你再想想 EF6+ORACLE11G 生成的实体模型,数据库用户名变更后,怎么修改EF中的用户

我开始也是这么想的,后来发现程序一直在读写原来的数据库,而直接用SQL查询已经转到新的数据库了,纠结了好久才发现这个问题。

#5


解决你的问题,最简单的就是 Code first而不是通过ef来 db first
因为ef会根据你选中的字符串连接,在配置里增加库名。这个配置我忘记在哪了,反正打开edmx应该能看见。
所以即使你换了字符串,但是edmx没有重新生成,依然还是会使用原来的库名
至于最简单的code first,就是你将  dbcontext,model都拷贝出来,就可以了。

#6


不过网上貌似有这个而解决方案。
但是看起来要每个表都配置一下

https://q.cnblogs.com/q/52042/

#7


引用 6 楼 hanjun0612 的回复:
不过网上貌似有这个而解决方案。
但是看起来要每个表都配置一下

https://q.cnblogs.com/q/52042/


每个表都重新配一下是可以,但如果是发布后的产品,不可能为每个用户来重新发布一次,

#8


引用 7 楼 xxbbff 的回复:
每个表都重新配一下是可以,但如果是发布后的产品,不可能为每个用户来重新发布一次,

那你们的表改动后,用户现在是怎么更新的呢?

#9


引用 8 楼 hanjun0612 的回复:
Quote: 引用 7 楼 xxbbff 的回复:


每个表都重新配一下是可以,但如果是发布后的产品,不可能为每个用户来重新发布一次,

那你们的表改动后,用户现在是怎么更新的呢?

我现在是把edmx重新生成一下

#10


引用 9 楼 xxbbff 的回复:
Quote: 引用 8 楼 hanjun0612 的回复:

Quote: 引用 7 楼 xxbbff 的回复:


每个表都重新配一下是可以,但如果是发布后的产品,不可能为每个用户来重新发布一次,

那你们的表改动后,用户现在是怎么更新的呢?

我现在是把edmx重新生成一下

你把用户名放到配置文件,然后在上面链接中的处理方式时,读取配置文件,来指定数据库名

#1


why you just change the connection string in app.config file of your project?

just search your current user name in your solution, you will find the connection string there.

#2


引用 1 楼 q107770540 的回复:
why you just change the connection string in app.config file of your project?

just search your current user name in your solution, you will find the connection string there.


修改连接字符串我知道,但这个修改了是没有用的,

比如原来的我的连接的是用户名 jllc63  后来我把连接用户名改成了jl  连接的时候是用了这个用户名,但实际操作数据库的时候,仍然会去操作jllc63下的表

就好比   select * from jllc63.table     EF在生成的SQL语句中加上了表的前缀,只是修改了连接字符串是没有用的

#3


修改了连接字符串就查的是不同的数据库了,楼主,你再想想 EF6+ORACLE11G 生成的实体模型,数据库用户名变更后,怎么修改EF中的用户

#4


引用 3 楼 changjiangzhibin 的回复:
修改了连接字符串就查的是不同的数据库了,楼主,你再想想 EF6+ORACLE11G 生成的实体模型,数据库用户名变更后,怎么修改EF中的用户

我开始也是这么想的,后来发现程序一直在读写原来的数据库,而直接用SQL查询已经转到新的数据库了,纠结了好久才发现这个问题。

#5


解决你的问题,最简单的就是 Code first而不是通过ef来 db first
因为ef会根据你选中的字符串连接,在配置里增加库名。这个配置我忘记在哪了,反正打开edmx应该能看见。
所以即使你换了字符串,但是edmx没有重新生成,依然还是会使用原来的库名
至于最简单的code first,就是你将  dbcontext,model都拷贝出来,就可以了。

#6


不过网上貌似有这个而解决方案。
但是看起来要每个表都配置一下

https://q.cnblogs.com/q/52042/

#7


引用 6 楼 hanjun0612 的回复:
不过网上貌似有这个而解决方案。
但是看起来要每个表都配置一下

https://q.cnblogs.com/q/52042/


每个表都重新配一下是可以,但如果是发布后的产品,不可能为每个用户来重新发布一次,

#8


引用 7 楼 xxbbff 的回复:
每个表都重新配一下是可以,但如果是发布后的产品,不可能为每个用户来重新发布一次,

那你们的表改动后,用户现在是怎么更新的呢?

#9


引用 8 楼 hanjun0612 的回复:
Quote: 引用 7 楼 xxbbff 的回复:


每个表都重新配一下是可以,但如果是发布后的产品,不可能为每个用户来重新发布一次,

那你们的表改动后,用户现在是怎么更新的呢?

我现在是把edmx重新生成一下

#10


引用 9 楼 xxbbff 的回复:
Quote: 引用 8 楼 hanjun0612 的回复:

Quote: 引用 7 楼 xxbbff 的回复:


每个表都重新配一下是可以,但如果是发布后的产品,不可能为每个用户来重新发布一次,

那你们的表改动后,用户现在是怎么更新的呢?

我现在是把edmx重新生成一下

你把用户名放到配置文件,然后在上面链接中的处理方式时,读取配置文件,来指定数据库名