首页 新闻 会员 周边

如何在同一个asp.net mvc 项目中根据不同用户建立多个oracle连接到不同的表空间

0
悬赏园豆:100 [已解决问题] 解决于 2013-12-02 21:29

问题主要内容如标题,可能表达的不是很清楚;

最近希望实现这么一个功能,就是当不同的用户登录系统时,根据用户登录的用户名,连接到同一个Oracle实例的不同Oracle表空间(PS:这里的用户名和表空间的关系可在程序启动时读取XML配置文件进行匹配),此处有点犯难,因为此前一直都是一个项目一个连接,没有太多的这方面的经验,问问各位园友是否有些思路,先多谢各位

问题补充:

之前一直在项目中用 EF ,貌似找了一些相关的资料,并未获得好的解决方案或思路

changwei0708的主页 changwei0708 | 初学一级 | 园豆:54
提问于:2013-12-01 22:00
< >
分享
最佳答案
0

是不是根据登陆用户不同改变连接字符串,把连接字符串配到xml中,直接获取没什么难的呀?

收获园豆:40
junjieok | 小虾三级 |园豆:779 | 2013-12-01 22:44

谢谢回答,是直接配置,但是现在有一个问题就是,同一个项目里,每登录一个用户改一次,这个方法可能并不是理想的

changwei0708 | 园豆:54 (初学一级) | 2013-12-01 23:26

希望是每个用户都独立一个配置,谁登录就加载谁的

changwei0708 | 园豆:54 (初学一级) | 2013-12-01 23:27

@changwei0708: 把用户表中加个连接字符串的字段

junjieok | 园豆:779 (小虾三级) | 2013-12-02 20:22
其他回答(3)
0

config文件中 connectionStrings节点下,写多个连接字符串!

收获园豆:30
秋壶冰月 | 园豆:5903 (大侠五级) | 2013-12-01 23:36
    /// <summary>
        /// 请使用应用程序配置文件的“MyDBModel”部分中的连接字符串初始化新 MyDBModel对象。
        /// </summary>
        public MyDBModel() : base("name=MyDBModel", "MyDBModel")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }

谢谢你的回答,但是这里有个问题,我使用了EF,在EF自动生成的代码中,已经制定了config文件里的ConnectionString对应的name,例如上面MyDBModel,下方是其对应额ConnectionString

 

<add name="MyDBModel" connectionString="metadata=res://*/EntityModels.MyDBModel.csdl|res://*/EntityModels.MyDBModel.csdl.ssdl|res://*/EntityModels.MyDBModel.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;DATA SOURCE=ORCL;PASSWORD=MyOracle;PERSIST SECURITY INFO=True;USER ID=123456&quot;" providerName="System.Data.EntityClient" />

配置多个connectionStrings是可以共存于Config文件中,但是第一段代码中初始化MyDBModel已经指定了对应的ConnectionString的name了,这里就是我最犯难的地方,之前也考虑过配置多个字符串,就是在这里卡住了,找不到好的思路去解决这个读取不同字符串的方法,因为name已经写死在代码中,很感谢你的回答,不过这个地方我暂时没有找到读取不同不同配置字符串的方法

支持(0) 反对(0) changwei0708 | 园豆:54 (初学一级) | 2013-12-02 00:47
0

可以考虑使用反射,这只是我的一个思路

收获园豆:30
mczxmin | 园豆:196 (初学一级) | 2013-12-02 09:33

谢谢回答,这个方式也在目前的考虑范围,只是真正实施起来还没理清头绪,还得努力研究

支持(0) 反对(0) changwei0708 | 园豆:54 (初学一级) | 2013-12-02 10:08
0
changwei0708 | 园豆:54 (初学一级) | 2013-12-02 21:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册