我敢肯定我正在努力学习一些非常基本的东西,错过了一个非常简单的观点...但我只是一直打墙,所以请帮忙.
问题如下.
如果我<Window.Resources>在同一个窗口中定义某个样式,我将其应用于控件 - 一切正常.但是因为我想在我的应用程序的不同窗口中重用这个样式,所以我试图将样式移到一个常见的位置......而且这里的东西停止了工作.
如果我将样式放在Themes\Generic.xaml中,则样式不会被应用.
当我尝试通过显式应用Style="{DynamicResource MyStyle}"相应的控件(其中"MyStyle"是样式的x:Key)从原始窗口引用它时- 我收到错误
无法解析资源"MyStyle"
如果我将该样式放在一个单独的XAML文件中,并尝试将其添加到App.xaml中的MergedDictionaries中,我会遇到另一个问题:"'Resources'属性已经在'App'上设置了".这是我尝试定义它的方式:
<Application.Resources>
<ResourceDictionary x:Key="MergedDictionaries">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Themes/MyStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
<Application.Resources>
Run Code Online (Sandbox Code Playgroud) 我正在尝试将Entity Framework与SQLite数据库文件一起使用,但无法使其正常工作.
我正在使用Visual Studio 2012,SQLite 1.0.92和Entity Framework 6.1.
edmx图正确显示我的表,所以我猜映射有效,但是当我尝试这样做时:
_Context = new DataContext();
var test = _Context.Set<T>().ToList();
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
没有为ADO.NET提供程序找到具有不变名称"System.Data.SQLite"的实体框架提供程序.确保提供程序已在应用程序配置文件的"entityFramework"部分中注册.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882.
正如其他SO帖子中所建议的,我尝试在我的DbContext构造函数中添加它以确保复制dll:
var ensureDLLIsCopied = System.Data.Entity.SqlServer.SqlProviderServices.Instance;
Run Code Online (Sandbox Code Playgroud)
结果是,我的程序永远挂起而不是抛出和异常.
我也尝试按照此处的建议更改app.config文件,并在此帖子的接受答案中,但没有更改.
有任何想法吗?
谢谢
编辑:
我改变了我的DbContext:
public class DataContext : DbContext { }
Run Code Online (Sandbox Code Playgroud)
对此:
public class DataContext : DbContext
{
public DataContext() : base("name=Entities") { }
}
Run Code Online (Sandbox Code Playgroud)
现在,我得到的例外是:
无法在应用程序配置文件中找到"实体"连接字符串
但"实体"的连接字符串是在App.config中:
<add name="Entities"
connectionString="metadata=res://*/Entities.Model.csdl|res://*/Entities.Model.ssdl|res://*/Entities.Model.msl;provider=System.Data.SQLite;provider connection string="data source=mypath\dbname.db""
providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)