由于各种原因,我不想将我的 Entity Framework DB 模型的连接字符串存储在各种 .config 文件之一中。(我将最新最好的 DBContext API 与新的 Entity Framework 4.1、.NET 4 和 Visual Studio 2010 C# 一起使用。)但是,DBContext 的代码生成模板只创建了一个无参数的构造函数。(如果我不使用 DBContext API,那么我的实体框架模型有 7 个不同的构造函数可供选择,包括我想要的那个。)
我能弄清楚如何做到这一点的唯一方法是直接修改代码生成模板(context.tt 文件)以提供我想要的构造函数(下面的示例代码)。这行得通,但感觉就像我正在“艰难地”做这件事。获取接受连接字符串的 DBContext 构造函数的正确方法是什么?
public <#=Code.Escape(container)#>(string connectionString)
: base(connectionString)
{
<#
WriteLazyLoadingEnabled(container);
#>
}
最后一点,以防它可能对其他人有所帮助。虽然这种方法有效,但我花了一段时间才意识到“连接字符串”并不是严格意义上的数据库连接字符串,而是包含数据库连接字符串的特殊实体框架连接字符串(就像应用程序中存储的一样) .config 文件)。