如何在运行时传递ADO.NET实体数据模型密码?在搜索问题,论坛,博客后我无法解决这个问题。我从数据库中选择代码优先,我想连接到现有的.SDF
数据库文件。
在app.config
中定义连接和名称时,我选择不将敏感密码存储到配置文件中。正如我在一些教程中看到的那样,他们不建议在config中存储密码。
如何在SetData之后在运行时传递密码?我在同一个文件夹中有3个数据库。我已将所有3个数据库添加到EF。
学习如何使用华丽的EF技术。需要一些建议。
EF是在WPF应用程序中设置的。
的App.config
<connectionStrings>
<add name="AppUI"
connectionString="Data Source=|DataDirectory|AppUI.sdf"
providerName="System.Data.SqlServerCe.4.0" />
<add name="AppSystem"
connectionString="Data Source=|DataDirectory|AppSystem.sdf"
providerName="System.Data.SqlServerCe.4.0" />
<add name="AppConfig"
connectionString="Data Source=|DataDirectory|AppConfig.sdf"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
我将数据目录设置为Application_Startup
:
AppDomain.CurrentDomain.SetData("DataDirectory", GlobVars.strLogStartPath + "Database");
EF主要课程
public partial class AppConfig : DbContext
{
public AppConfig()
: base("name=AppConfig")
{
}
public AppConfig(string ConnectionString)
: base(ConnectionString)
{
}
public virtual DbSet<HardwareConfig> HardwareConfigs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
我从配置数据库中获取值
using (var context = new AppConfig())
{
IQueryable<HardwareConfig> qTable = from t in context.HardwareConfigs
select t;
foreach (var t in qTable)
{
string devicename = t.Model;
}
}
目前问题出现在IQueryable<HardwareConfig>
,它会引发异常:
底层提供程序在Open上失败。指定的密码与数据库密码不匹配。 [数据源= AppConfig.sdf]