gpt4 book ai didi

entity-framework - 如何使用 Entity Framework 4.1 将连接字符串传递给数据库优先 DBContext 的构造函数?

转载 作者:行者123 更新时间:2023-12-01 02:43:14 26 4
gpt4 key购买 nike

由于种种原因我想不是 将我的 Entity Framework DB 模型的连接字符串存储在各种 .config 文件之一中。 (我将最新最好的 DBContext API 与新的 Entity Framework 4.1、.NET 4 和 Visual Studio 2010 C# 一起使用。)但是,DBContext 的代码生成模板只创建了一个无参数构造函数。 (如果我不使用 DBContext API,那么我的 Entity Framework 模型有 7 个不同的构造函数可供选择,包括我想要的一个。)

我能弄清楚如何做到这一点的唯一方法是直接修改代码生成模板(context.tt 文件)以提供我想要的构造函数(下面的示例代码)。这行得通,但感觉就像我在“艰难地”做这件事。获取接受连接字符串的 DBContext 构造函数的正确方法是什么?

    public <#=Code.Escape(container)#>(string connectionString)
: base(connectionString)
{
<#
WriteLazyLoadingEnabled(container);
#>
}

最后一个注意事项,以防它可能对其他人有所帮助。虽然这种方法有效,但我花了一段时间才意识到“连接字符串”并不是严格意义上的 DB 连接字符串,而是包含 DB 连接字符串的特殊 Entity Framework 连接字符串(就像应用程序中存储的内容一样) .config 文件)。

最佳答案

您的方法看起来是最正确的方法。这就是创建 t4 模板的目的,并且您所做的基本上与默认情况下模型优先模板所做的相同。

另一种可能性是使 db 上下文类为 partial (如果不是默认情况下)并在它旁边创建另一个部分类文件以添加您想要的构造函数。但您似乎希望所有 t4 生成的上下文都遵循此模式,因此我认为最好利用代码生成以您在问题中的方式自动执行此操作。

关于entity-framework - 如何使用 Entity Framework 4.1 将连接字符串传递给数据库优先 DBContext 的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7599455/

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