gpt4 book ai didi

c# - 为 EF 5.0 模型提供连接字符串

转载 作者:行者123 更新时间:2023-11-30 18:37:53 24 4
gpt4 key购买 nike

所以我想这很简单,但出于某种原因我无法找到答案。我的问题是我之前使用过从 ObjectContext 继承的 EF 4.3.1 上下文,并且自动生成总是创建一个重载的构造函数,该构造函数接受连接字符串作为参数。

现在我正尝试切换到 EF 5.0,我必须使用 DbContext 版本。但是继承自 DbContext 的 MyEntities,只有无参数构造函数可用。我想我可以自己添加重载的构造函数,并让它调用 base(connectionString),但是对自动生成的文件进行手动更改似乎充其量是一项冒险的工作。

那么我如何创建一个 MyEntities 的实例,它使用我在运行时提供的连接字符串?

最佳答案

您尝试过使用 connectionFactory 吗?

此示例适用于 SqLite,但它适用于所有数据库。

你可以创建一个类似于这个的类:

public class SqLiteConnectionFactory : IDbConnectionFactory
{
public System.Data.Common.DbConnection CreateConnection(string nameOrConnectionString)
{
var databaseDirectory = @"C:\\master.db";

var builder = new SQLiteConnectionStringBuilder
{
DataSource = databaseDirectory,
Version = 3
};
return new SQLiteConnection(builder.ToString());
}
}

然后在您第一次访问上下文之前通过执行此语句来使用 if:

Database.DefaultConnectionFactory = new ConnectionFactories.SqLiteConnectionFactory ();

关于c# - 为 EF 5.0 模型提供连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com