持久化对自动生成的DbContext的更改
本文关键字:DbContext 持久化 自动生成 | 更新日期: 2023-09-27 18:13:31
我目前正试图找到一种优雅的方式来允许对DbContext的构造函数中的连接字符串集进行更改。下面是当前的自动生成代码,我添加了this.Database.Connection.ConnectionString = @"ConnectionStringToPersist";
,以便能够编辑connectionString。
public partial class Entities : DbContext
{
public DbEntities()
: base("name=DbEntities")
{
this.Database.Connection.ConnectionString = @"ConnectionStringToPersist";
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Log> Log { get; set; }
public virtual DbSet<Processed> Processed { get; set; }
}
最初的目标是将我的connectionString移出我的app.config,所以我决定尝试以这种方式设置它(并且它有效)-但是如果我要添加/删除/修改表,我对连接字符串所做的更改将在再生时被覆盖。
有一个更好的方法来使用连接字符串在我的代码?将connectionStrings移出app.config的最初原因是为了消除配置文件中存在凭据的可能性。
欢迎提出任何建议。
除了使用aspnet_regiis
和加密您的app.config的connectionStrings
部分(在尝试这样做之前-您的app.config必须重命名为web.config)。
创建一个新的类并声明一个Entities
的部分类
public partial class Entities
{
public DbEntities()
: base(@"ConnectionStringToPersist")
{
}
}
然后删除/注释掉自动生成类中构造函数的原始定义,它应该像预期的那样工作。这是我到目前为止所想到的,但我会继续寻找不同的方法来解决这个问题。
这仍然不能解决实体再生的问题,所以还在研究。