我正在尝试编写一些代码,允许我在SQLCE(在我的开发机器上本地)和完整SQL(在AppHarbor上)之间切换.使用SQL CE,连接字符串都是为我处理的,但我必须自己为SQL构建它.到目前为止,我的代码如下,但是它给出了这个错误:
不支持关键字:'元数据'
我一直在网上看了几个小时,但所有的解决方案都涉及使用我找不到的"ContextBuilder"类(我已经通过NuGet包安装了EF).
这是当前代码(通过WebActivator在启动时运行):
public static void Start()
{
// Read the details from AppSettings. Locally, these will be empty.
var databaseHost = ConfigurationManager.AppSettings["DatabaseHost"];
var databaseName = ConfigurationManager.AppSettings["DatabaseName"];
var databaseUsername = ConfigurationManager.AppSettings["DatabaseUsername"];
var databasePassword = ConfigurationManager.AppSettings["DatabasePassword"];
// Check whether we have actual SQL Server settings.
if (!string.IsNullOrWhiteSpace(databaseHost) && !string.IsNullOrWhiteSpace(databaseName))
{
// Set up connection string for a real live database :-O
var connectionString = string.Format("metadata=res://*/DB.csdl|res://*/DB.ssdl|res://*/DB.msl;"
+ "provider=System.Data.SqlClient; provider connection string='Data Source={0};"
+ "Initial Catalog={1};User ID={2}; Password={3};MultipleActiveResultSets=True'",
databaseHost, databaseName, databaseUsername, …Run Code Online (Sandbox Code Playgroud) 我正在使用Entity Framework 5.0我的项目.我查看了互联网,我看到对于实体框架数据上下文,有另一个构造函数,它具有连接字符串的字符串参数.
在我生成的data context我没有这样的构造函数.我查看了基础DbContext,它有这样的构造函数.
代码生成错了吗?我从数据库生成代码.这可能是原因吗?
事实证明我可以编辑代码生成模板文件来添加新的构造函数.现在我添加了新的构造函数.该文件是edmx模型下的MyDataContext.tt文件.你有c#代码与模板代码混合在一起.您可以从那里复制无参数构造函数并将其粘贴到下面.然后你可以改变它并为它添加一个字符串参数,并将该参数传递给DbContext构造函数,如下所示:base(myString).
我有几个数据库,它们的架构是相同的.当我使用数据库优先时,在创建edmx文件时指定连接字符串.我想知道,有没有办法改变连接字符串?这是,所以我可以选择要运行的数据库.Thx提前!