gpt4 book ai didi

visual-studio-2010 - 如何使 LINQ to SQL 数据库连接完全可配置/通用?

转载 作者:行者123 更新时间:2023-12-01 13:02:51 25 4
gpt4 key购买 nike

对于 ASP.NET C# 应用程序,我想使用 LINQ to SQL 来查询 SQL 数据库,为此我在 web.config 文件中定义了一个连接字符串。我使用 Visual Studio 2010 中的向导来创建 LINQ 类。但是,经过检查,.dbml 文件明确包含我正在使用的数据库名称和连接字符串(在我的开发系统中),并且 .designer.cs 文件还明确命名了数据库。

例如,在我的 .dbml 文件中:

   <?xml version="1.0" encoding="utf-8"?>
<Database Name="MyDatabaseName" Class="MyLinqDataContext"
xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
<Connection Mode="WebSettings" ConnectionString="XXX"
SettingsObjectName="System.Configuration.ConfigurationManager.ConnectionStrings"
SettingsPropertyName="MyConnectionString" Provider="System.Data.SqlClient" />

在我的 .designer.cs 文件中:
[global::System.Data.Linq.Mapping.DatabaseAttribute(Name="MyDatabaseName")]

虽然表结构是静态的,但我不知道我的客户会提前选择什么连接字符串和数据库名称,我希望他们只需更改 web.config 文件即可配置数据库联系。

我如何设置它,以便我不必将静态开发设置编译或发布到我的产品的发布版本中,允许我的客户在一个地方配置所有内容?

谢谢。

最佳答案

检查这个 explanation

您可以使用从配置文件中获取的连接字符串来初始化您的数据上下文。这会覆盖设计器文件中使用的默认连接字符串。

另一种方法是创建您自己的部分 DataContext 类并添加在默认构造函数中调用的 OnCreated 部分方法。这是我从 web.config ConnectionString 部分读取 ConnectionString 的一个简单实现。

  Partial class MyDataContext
{
partial void OnCreated()
{
this.Connection.ConnectionString =
ConfigurationManager.ConnectionStrings["myconnection"].ConnectionString;
}
}

关于visual-studio-2010 - 如何使 LINQ to SQL 数据库连接完全可配置/通用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952371/

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