gpt4 book ai didi

c# - 我可以阻止 dbml 设计器向 dbml 文件添加连接字符串吗?

转载 作者:IT王子 更新时间:2023-10-29 04:11:30 24 4
gpt4 key购买 nike

<分区>

我们有一个自定义函数 AppSettings.GetConnectionString(),它总是被调用以确定应该使用的连接字符串。这个函数如何工作对讨论并不重要。只要说它返回一个连接字符串就足够了,我必须使用它。

我希望我的 LINQ to SQL DataContext 使用它,所以我从 dbml 文件中删除了所有连接字符串信息,并创建了一个带有默认构造函数的分部类,如下所示:

public partial class SampleDataContext
{
public SampleDataContext() : base(AppSettings.GetConnectionString()) { }
}

在我使用设计器将表格拖放到图表中之前,它工作正常。将表格拖到图表中的行为会做一些不需要的事情:

  • 将创建一个设置文件
  • 将创建一个 app.config 文件
  • 我的 dbml 文件将嵌入连接字符串

所有这些都是在我保存文件之前完成的!

当我保存图表时,将重新创 build 计器文件,它将包含自己的默认构造函数,该构造函数使用错误的连接字符串。当然,这意味着我的 DataContext 现在有两个默认构造函数,我不能再构建了!

我可以撤销所有这些坏事,但这很烦人。每次更改后,我都必须手动删除连接字符串和新文件!

有什么办法可以阻止设计师在不询问的情况下进行这些更改?

编辑

使用 AppSettings.GetConnectionString() 方法的要求是在游戏后期强加给我的。我曾经使用过与它为我生成的东西非常相似的东西。有很多地方调用默认构造函数。我知道我会更改它们以另一种方式创建数据上下文(使用不同的构造函数、静态方法、工厂等)。这种改变只会有点烦人,因为它只需要做一次。但是,我觉得它在回避真正的问题。 dbml 文件和配置文件仍会包含不正确的(如果未使用)连接字符串,这充其量只会让其他开发人员感到困惑。

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