gpt4 book ai didi

c# - 在应用程序配置文件中找不到名为 '' 的连接字符串

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:25 25 4
gpt4 key购买 nike

我知道这个问题之前已经被问过好几次了——而且大部分的答案都是一样的。但在这些情况下,当更多项目使用相同的实体和连接字符串时,问题通常会出现在所有配置文件中。就我而言,所有这些都在同一个项目中。并且连接字符串存在于 App.config 中。我在 XAML 中使用 View 模型:

<Window x:Class="ReportMapping.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ReportMapping"
Title="Title" Height="477.22" Width="836.631">
<Window.DataContext>
<local:CompanyCollectionViewModel/>

</Window.DataContext>...

我从我的 ViewModel 调用我的实体:

namespace ReportMapping
{
class CompanyCollectionViewModel
{
NAV_HelpersEntities dbContext = new NAV_HelpersEntities();

如果我从我的 View 模型所在的其他地方调用实体,它就可以工作。在代码隐藏的示例绑定(bind)中。

连接字符串(如果在 MainWindow.cs 中使用则有效):

<connectionStrings>
<add name="NAV_HelpersEntities" connectionString="metadata=res://*/Mapping.csdl|res://*/Mapping.ssdl|res://*/Mapping.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=NAV\;initial catalog=NAV_Helpers;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

这里是 NAV_HelpersEntities 构造函数:

public partial class NAV_HelpersEntities : DbContext
{
public NAV_HelpersEntities()
: base("name=NAV_HelpersEntities")
{
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}

public virtual DbSet<R_Component> R_Component { get; set; }
public virtual DbSet<R_Configuration> R_Configuration { get; set; }
public virtual DbSet<R_Masterdata> R_Masterdata { get; set; }
public virtual DbSet<R_Type> R_Type { get; set; }
public virtual DbSet<View_NAV_Entries> View_NAV_Entries { get; set; }
public virtual DbSet<View_R_GetAccounts> View_R_GetAccounts { get; set; }
}

当我调试 CompanyCollectionViewModel 构造函数时,我可以看到我的 ObservableCollection 正在被填充。

我在这里做错了什么?

更新:好吧,我现在通过将连接字符串添加到 machine.config 来让它工作。这行得通 - 但我想这只是我稍后必须解决的一种解决方法。感谢您的输入。

最佳答案

我已经找到了一个简单的解决方案。调用实体构造函数的基构造函数时,必须从参数字符串中删除“name=”。所以你必须改变这个:

public partial class SalesContext : DbContext 
{
public SalesContext()
: base("name=SalesContext")
{
}

为此:

public partial  class SalesContext : DbContext 
{
public SalesContext()
: base("SalesContext")
{
}

在这里查看:Entity Framework MVVM Walk Through 1

关于c# - 在应用程序配置文件中找不到名为 '' 的连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29117017/

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