我正在开发一个项目,我们使用EF进行数据访问,使用WPF和MVVM进行用户界面。
我将视图模型绑定到窗口的数据上下文。此视图模型具有默认构造函数,其定义如下:
public KonumVM()
{
LocationOperations = new LocationOperations();
LocationNames = new ObservableCollection<string>();
Corporations= new ObservableCollection<Kurum>();
//Corporations= LocationOperations.GetCorpValues();
//foreach (var corp in Corporations)
//{
// LocationNames.Add(corp.Name);
//}
}
注释行是我查询数据库的地方。如果这些行没有被注释,当我尝试编辑绑定到此View Model的窗口的XAML代码时,我得到一个异常,我认为这是一个XAML加载失败,它会阻止设计者。例外是在消息的末尾。当我评论数据库查询行时,设计师很好,没有例外。
我该怎么办?我应该将数据库访问代码移动到默认构造函数以外的其他位置吗?
无法打开数据库“DemirbaşEntityLibrary.DemirbaşContext”请求 通过登录。登录失败。用户'Rfid \ Mert'登录失败。
在 System.Data.ProviderBase.DbConnectionPool.GetConnection(的DbConnection 拥有对象) System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection 拥有连接) System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory)at System.Data.SqlClient.SqlConnection.Open()at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(布尔 openCondition,DbConnection storeConnectionToOpen,DbConnection originalConnection,String exceptionCode,String attemptsOperation, 布尔和放大器; closeStoreConnectionOnFailure)
答案 0 :(得分:0)
浏览用于连接数据库的连接字符串。如果您正在为您的网站使用MSSQL数据库,请参阅下面给出的示例连接字符串:
其中Data Source = xxxx; =服务器初始化的IP地址 Catalog = xxxxxx =数据库名称用户ID = xxxxxx =数据库用户名 密码= #xxxxx#“= db密码
确保您能够使用数据库详细信息(用户名和密码)远程连接到SQL Server Management Studio。
如果您无法使用在连接字符串中使用的用户名和密码连接到数据库,请尝试重置数据库用户的密码并尝试连接它。它将解决问题......
答案 1 :(得分:0)
解决方案是将我的上下文绑定代码移动到代码隐藏文件,因此在设计UI时,XAML解析器不会尝试访问数据库。
this.DataContext = new MyViewModel();
如果您不喜欢代码隐藏方法(出于某种原因),则可以在完成UI设计后将其移回XAML代码。