.net 在使用实体框架时,如何在第一次运行程序时启用MS-SQL Compact数据库加密?

.net 在使用实体框架时,如何在第一次运行程序时启用MS-SQL Compact数据库加密?,.net,wpf,entity-framework,connection-string,.net,Wpf,Entity Framework,Connection String,好的,这是szenario: 我正在编写一个.NET 3.5 WPF应用程序,使用Microsoft实体框架使用压缩数据库文件(.sdf)存储数据。在我的第一个程序启动时,会计算一个基于计算机的加密密钥并将其保存到注册表中,我的sdf文件应该使用该密钥进行加密(或者更确切地说,使用该密钥的散列版本) 我目前的问题 如何使用生成的密码加密我的(直到现在还未加密的)sdf文件 如何告诉实体框架的ModelContainer使用此密码连接到数据库,而不是app.config中未保存密码的连接字符串 我

好的,这是szenario:

我正在编写一个.NET 3.5 WPF应用程序,使用Microsoft实体框架使用压缩数据库文件(.sdf)存储数据。在我的第一个程序启动时,会计算一个基于计算机的加密密钥并将其保存到注册表中,我的sdf文件应该使用该密钥进行加密(或者更确切地说,使用该密钥的散列版本)

我目前的问题

  • 如何使用生成的密码加密我的(直到现在还未加密的)sdf文件
  • 如何告诉实体框架的ModelContainer使用此密码连接到数据库,而不是app.config中未保存密码的连接字符串
  • 我试图清除所有连接字符串,并在启动时使用密码创建一个新的连接字符串,但我得到一个例外,我的配置是只读的


    非常感谢您的任何想法:-)

    要将数据库从不受保护更改为受保护,必须使用SqlCeEngine Compact方法(在System.Data.SqlServerCe ADO.NET提供程序中)

    要修改connectionstring,请参见以下内容:

    SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");
    engine.Compact("Data Source=; Password =a@3!7f$dQ;");