我想在WPF窗口中访问我的DbContext类型的一些静态属性。我以为我可以使用我用来引用单个实体的相同XAML:
<Window.Resources>
<entity:Account x:Key="account"/> //Works fine
<entity:MyEntities x:Key="myEntities"/> //Throws an error!
</Window.Resources>
我收到此错误:
在应用程序配置文件中找不到名为“MyEntities”的连接字符串。
为什么以不同于Account实体的方式处理DbContext类型(MyEntities)?有没有一种简单的方法可以访问我的MyEntities类型的静态属性?
答案 0 :(得分:0)
您使用的语法是创建实例,而不是静态属性。如果要访问静态属性,则需要使用x:Static
标记扩展名
<Window.Resources>
<entity:Account x:Key="account" SomeProperty={x:Static entity:MyEntities.MyProperty}/>
</Window.Resources>
上面的xaml类似于C#代码
var account = new Account()
{
SomeProperty = MyEntities.MyProperty
};
this.Resources["account"] = account;
如果您致电new Account()
(如原始示例所示),请注意您正在呼叫new MyEntites()
,您会收到错误。
答案 1 :(得分:0)
由于我放在DbContext中的静态构造函数,似乎会产生特定的错误。当我删除静态构造函数时,错误更改为:
对象引用未设置为对象的实例。
事实证明,原始错误并不妨碍我编译或运行我的应用程序。我更改了我的代码以使用Scott Chamberlain的建议(产生类似的可忽略错误),因为它更清晰,我可以访问DbContext上的静态属性,尽管Visual Studio的投诉。谢谢大家的帮助和建议。