gpt4 book ai didi

c# - UserControl 中的 EF 看不到 app.config?

转载 作者:太空狗 更新时间:2023-10-29 21:11:15 25 4
gpt4 key购买 nike

我刚刚创建了一个用户控件。此控件还利用我的静态 Entity Framework 类来加载两个组合框。一切都很好,运行没有问题。设计和运行时正在运行。然后,当我停止应用程序时,所有包含我的 UserControl 的表单在设计时都不再工作。我只看到两个错误:

错误 1:在配置中找不到指定的命名连接,不打算与 EntityClient 提供程序一起使用,或者无效。

错误 2:变量 ccArtikelVelden 未声明或从未分配。(ccArtikelVelde 是我的 UserControl)

运行时一切仍在运行

我的静态 EF Repositoy 类:

public class BSManagerData
{
private static BSManagerEntities _entities;
public static BSManagerEntities Entities
{
get
{
if (_entities == null)
_entities = new BSManagerEntities();
return _entities;
}
set
{
_entities = value;
}
}
}

我的 UserControl 中发生的一些逻辑用于将数据加载到组合框中:

private void LaadCbx()
{
cbxCategorie.DataSource = (from c in BSManagerData.Entities.Categories
select c).ToList();
cbxCategorie.DisplayMember = "Naam";
cbxCategorie.ValueMember = "Id";
}

private void cbxCategorie_SelectedIndexChanged(object sender, EventArgs e)
{
cbxFabrikant.DataSource = from f in BSManagerData.Entities.Fabrikants
where f.Categorie.Id == ((Categorie)cbxCategorie.SelectedItem).Id
select f;
cbxFabrikant.DisplayMember = "Naam";
cbxFabrikant.ValueMember = "Id";
}

让我的表单再次工作的唯一方法,设计时间,是注释掉 UserControl 中的 EF 部分(见上文)并重建。这很奇怪,所有东西都在同一个程序集、同一个命名空间中(为了简单起见)。

有什么想法吗?

最佳答案

看起来您正在以某种方式在设计模式下执行数据库代码。为防止这种情况,请查找导致这种情况的控件和方法,并使用:

if (DesignMode)
return

此外,静态缓存数据库上下文是一个非常糟糕的主意。它会导致多线程问题,以及在您进行插入和删除时也会出现问题。数据库上下文旨在用于单个“工作单元”,添加 2 个对象,删除 3 个其他对象并调用一次 SaveChanges

关于c# - UserControl 中的 EF 看不到 app.config?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2438986/

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