避免在启动WPF项目中暴露连接字符串

时间:2018-08-28 02:11:12

标签: c# wpf entity-framework

我有WPF项目,并且类库正在使用数据库优先方法处理EF 6.0。现在,我希望实体类进入我的启动项目(WPF项目),而不必在启动项目app.config中添加连接字符串。我用谷歌搜索EntityConnectionStringbuilder类,它将有助于动态生成连接字符串。但是,我找不到使用数据库优先方法和entityconnectionstringbuilder的解决方案。

请帮助我阐述Db优先方法中的EntityConnectionStringbuilder示例,或者建议我使用其他方法。

1 个答案:

答案 0 :(得分:0)

您可以使用代码优先方法

首先创建一个示例类

TextView systemView = (TextView) findViewById(R.id.systemView);
    if (this.getIntent().getStringExtra(Main2Activity.KEY)!= null)
    {
        systemView.setText(this.getIntent().getStringExtra(Main2Activity.KEY);
    } 
    else 
    {
        systemView.setText(" Set any default value");
    }

现在为任务创建任务上下文

public class Sample
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

现在创建一个连接字符串

public class SampleContext : DbContext
{
    public SampleContext(string connection) : base(connection)
    {
        Database.SetInitializer(new DropCreateDatabaseIfModelChanges<TaskContext>());
    }

    public DbSet<Task> Tasks { get; set; }
}

现在将连接字符串传递给SampleContext,它将为您创建数据库

 string ConnectionString = string.Format("data source=.;initial catalog={0}; User Id={1};Password={2};", connection.FileName, connection.UserName, connection.Password);

根据您的使用情况更改连接字符串