我正在使用C#创建一个WinForms应用程序。当我去创建我的数据库对象时,我有两个选项:
我想要的只是一个用于我的项目的简单本地数据库。
但是,如果我选择“本地数据库(精简版)”,那么在我创建表并将它们拖到LINQ-To-SQL类创建者之后,它会说:
所选对象使用不受支持的数据提供程序。
因此,我不知道为什么在将表拖到Object Relational设计器时,创建本地数据库会被视为不受支持的提供程序。
所以,我尝试了第二种类型,“基于服务的数据库”。我在桌子上摆放了我想要的基本应用程序和制作表格。当拖动这些表时,LINQ-To-SQL设计器工作正常,我继续在我的应用程序中编写代码以插入和更新数据库条目。
但是,使用第二个“基于服务的数据库”,只要应用程序正在运行,我的插入和更新就会起作用。然而,一旦我关闭它,它就会恢复到之前的状态。如果我通过服务器资源管理器手动添加数据,它会持续存在,但我不会保存任何插入。
为什么我不能使用LINQ创建和使用本地数据库?
如果这不是一个选项,那么为什么不是“基于服务的数据库”(无论是什么),超出应用程序关闭的持续时间?
谢谢你的时间!
编辑:显然LINQ-To-SQL对象设计器不适用于Compact Edition本地数据库。它仍然可以完成,但你必须使用SqlMetal来生成dmbl文件。
答案 0 :(得分:5)
编译时,旧数据库将被删除,新数据库将被复制到bin文件夹。因此,尝试链接(使用linq)到bin文件夹中的数据库。尝试更改您的connectionString。