在WPF中使用EFCodeFirst和SqlCe如果您没有)并将其与EFCodeFirst一起使用。当我尝试从它应该创建的数据库中读取数据时,它给出了错误,但是当我检查数据库上下文对象时,我看到它正在尝试在SqlExpress中创建它。首先,如何将其设置为使用CE而不是SqlExpress并设置文件位置?我尝试更改app.config中的连接字符串,但无法正常工作(它没有创建sdf文件),而且我不知道如何将连接字符串路径设置为AppData文件夹,因为它是在用户文件夹中(不固定)。从未使用过SqlCe或EFCodeFirst,因此欢迎和感谢任何帮助。提前致谢。经过大量摆弄之后,我设法让它工作了。我的app.config具有以下内容:在部署中使用DbProviderFactory也会有所帮助。它允许用户在不运行安装程序的情况下使用SQLCE4(如果您提供本机二进制文件,请在此处提供一些信息:http://erikej.blogspot.com/2011/02/using-sql-server-compact-40-with.html)。这是一个可能的线索。如果您使用NuGet包管理器安装EFCodeFirst.SqlServerCompact,并查看:VisualStudio2010ProjectsMyProjectpackagesEFCodeFirst.SqlServerCompact.0.8.8482Content,它会为您的Web应用程序执行以下操作:publicstaticclassAppStart_SQLCEEntityFramework{publicstaticvoidStart(){DbDatabase.DefaultConnectionFactory=newSqlCeConnectionFactory("System.Data.SqlServerCe.4.0");//设置使用SqlServerCompact数据库的默认数据库初始化代码//如果您正在使用DbContext创建和管理数据库,则取消注释此行并将CONTEXT_NAME替换为您的DbContext的名称//DbDatabase.SetInitializer(newCreateCeDatabaseIfNotExists());我认为这些工具还没有为WPF项目的SQLCE做好准备。它也阻止了我。这在短期内可能无济于事,但我认为从长远来看这将是最好的解决方案。我还没有找到任何其他人记录如何执行此操作,所以我想我必须弄清楚,除非有人对使用SqlCE4、CodeFirst和创建NuGet包有更多的了解。我们需要的是一个NuGet包,可以是一个新包,也可以是一个足够智能的现有包,可以将SqlCE4和CodeFirst添加到WPF和/或WinForms项目中。现有包似乎适用于Web项目,因为它依赖于WebActivator。据我所知,在非web项目上安装WebActivator确实不合适。我不知道NuGet包是否可以检测项目类型并根据该信息执行不同的安装逻辑。对于负责维护EFCodeFirst.SqlServerCompact包的人来说,发布非Web版本或使现有版本更智能会更好。等等,在我的空闲时间我会看看我是否能弄清楚如何去做并创建我自己的。我无法保证需要多长时间,因为在制作NuGet包时我几乎完全一无所知。我创建了几个非常基础的,但从未做过配置转换等高级操作。以上是C#学习教程:在WPF中使用EFCodeFirst和SqlCe共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
