相关疑难解决方法(0)

不支持关键字:"数据源"初始化实体框架上下文

我正在初始化实体框架对象上下文,这给了我关键字不支持错误:

metadata=res://*/MainDB.csdl|res://*/MainDB.ssdl|res://*/MainDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Workspace\vs\Leftouch\Leftouch.Web\Data\Leftouch.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;App=EntityFramework"

我直接从web.config中获取了连接字符串,并且只修改了文件的路径(我动态设置),而不是使用默认值,显式使用了这个连接字符串.什么可能导致此错误?

entity-framework connection-string

155
推荐指数
3
解决办法
15万
查看次数

动态连接字符串的设置实体框架

我正在开发一个应用程序,它将在多个数据库中使用相同的数据库模式.出于这个原因,我创建了一个名为的数据库MyTemplate.创建新用户时,他们将拥有自己的数据库实例.因此,MyTemplate_[UserName]将创建一个名为like的数据库.当用户登录时,我需要将他们的查询指向他们的数据库.出于这个原因,我知道我需要在运行时设置连接字符串.我的问题是,我也想使用实体框架.

目前,我使用MyTemplate作为源创建了一个新的.edmx.我以为我能够更新代码并在那里设置连接字符串.不幸的是,我无法弄清楚如何设置它.TemplateEntities的构造函数没有允许我传入连接字符串的重载.我注意到TemplateEntities派生自DbContext,我不认为这会是问题所在.

string connectionString = GetUsersConnectionString();
using (TemplateEntities entities = new TemplateEntities())
{
  TemplateEntity entity = new TemplateEntity();

  // Save to the database
  entities.TemplateEntity.Add(entity);
  entities.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

我创建.edmx错了吗?或者我完全错过了什么?我谷歌的所有内容都显示了一个重载,应该允许传入连接字符串.但是,我没有可用的超载.

c# entity-framework

23
推荐指数
2
解决办法
3万
查看次数

实体框架 - 数据库优先没有配置

我正在开发一个类库,用于处理使用EF的现有数据库.我想避免类库(和.exe或网站)的使用者在*.config文件中包含实体连接字符串.我希望连接字符串设置为运行时.

如何使用Database First方法设置连接字符串?没有构造函数重载接受连接字符串,当我创建一个(在一个单独的分部类中)时,我得到了"UnintentionalCodeFirstException".

我已经审查过以下链接:

entity-framework entity-framework-5

3
推荐指数
1
解决办法
3397
查看次数