我将我的DAL从使用LINQ切换到实体框架。因为我的应用程序根据当前用户连接到不同的数据库,所以我需要在运行时动态创建DataContext并传递适当的连接字符串。但是,当我尝试以编程方式使用旧连接字符串创建实体框架连接时,连接失败。它抱怨说,它不能识别连接字符串中的密钥,“服务器”是确切的。为什么实体框架连接需要元数据属性?
我发现我需要这样做是为了得到实体框架连接的工作:
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.Provider = "System.Data.SqlClient";
entityBuilder.ProviderConnectionString = clientConnectionString;
entityBuilder.Metadata = "res://*/xxxxxxxxxx.csdl...";
Entities entities = new Entities(entityBuilder.ToString());
这是为什么?
什么是元数据属性?
这是一个问题,它总是相同的多个不同的连接?
它应该是什么?
有没有办法解决这个问题?
在此先感谢!
更新1: 感谢您的更新Randolpho,但...
我有这个问题的全部原因,是我不能连接字符串存储在配置文件中。连接字符串在运行时由用户连接动态确定。
这是我确切的情况:
如果用户A连接,应用程序从数据库A.如果用户B连接中提取数据,应用程序从数据库B.
的连接字符串存储在主拉数据数据库,这个数字可能是无限的。每次添加用户时,我都不想进入web.config,更不用说它最终会变得非常庞大!
由于映射对于每个连接都是相同的,并且它不会改变,因此我为它们使用相同的元数据并不重要? – 2009-01-30 21:40:20
是的,这是正确的 – user230910 2016-12-27 08:48:24