XAML给出了Load Failure错误

时间:2012-03-29 12:17:24

标签: c# wpf entity-framework xaml mvvm

我正在开发一个项目,我们使用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)

2 个答案:

答案 0 :(得分:0)

浏览用于连接数据库的连接字符串。如果您正在为您的网站使用MSSQL数据库,请参阅下面给出的示例连接字符串:

  

     

其中Data Source = xxxx; =服务器初始化的IP地址   Catalog = xxxxxx =数据库名称用户ID = xxxxxx =数据库用户名   密码= #xxxxx#“= db密码

确保您能够使用数据库详细信息(用户名和密码)远程连接到SQL Server Management Studio。

如果您无法使用在连接字符串中使用的用户名和密码连接到数据库,请尝试重置数据库用户的密码并尝试连接它。它将解决问题......

您还可以查看以下可能对您有帮助的链接:http://blog.sqlauthority.com/2009/08/20/sql-server-fix-error-cannot-open-database-requested-by-the-login-the-login-failed-login-failed-for-user-nt-authoritynetwork-service/

答案 1 :(得分:0)

解决方案是将我的上下文绑定代码移动到代码隐藏文件,因此在设计UI时,XAML解析器不会尝试访问数据库。

this.DataContext = new MyViewModel();

如果您不喜欢代码隐藏方法(出于某种原因),则可以在完成UI设计后将其移回XAML代码。