Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 避免在启动WPF项目中暴露连接字符串_C#_Wpf_Entity Framework - Fatal编程技术网

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

C# 避免在启动WPF项目中暴露连接字符串,c#,wpf,entity-framework,C#,Wpf,Entity Framework,我有一个WPF项目,类库使用数据库优先的方法处理EF6.0。现在,我希望实体类进入我的启动项目(WPF项目),而无需在startup project app.config中添加连接字符串。我搜索出类EntityConnectionStringbuilder,它将帮助动态生成连接字符串。但是,我找不到使用数据库优先方法和entityconnectionstringbuilder的解决方案 请帮助我在Db-first方法中对EntityConnectionStringbuilder示例进行分析,或建

我有一个WPF项目,类库使用数据库优先的方法处理EF6.0。现在,我希望实体类进入我的启动项目(WPF项目),而无需在startup project app.config中添加连接字符串。我搜索出类EntityConnectionStringbuilder,它将帮助动态生成连接字符串。但是,我找不到使用数据库优先方法和entityconnectionstringbuilder的解决方案


请帮助我在Db-first方法中对EntityConnectionStringbuilder示例进行分析,或建议我不同的方法。

您可以使用代码优先方法

首先创建一个示例类

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,它将为您创建数据库

 SampleContext = new SampleContext(ConnectionString);

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

使用
EntityConnectionStringbuilder.ToString()
获取连接字符串,如果我使用(var dbenties=new DB_Entities())因此,在何处传递连接字符串和DB_Entites构造函数是自动生成的,因为我有DB-first方法。我通过在我的dll项目上创建分部类,并将构造函数参数化为连接字符串,获得了DB-first方法的解决方案。我创建了具有相同名称空间的分部类。公共部分类SampleEntities:DbContext{public SampleEntities(string connectionstring):base(connectionstring){},所有内容都与前面相同。现在我正在访问这个类。调用时,我在新对象中使用了EntityConnectionStringBuilder.Connectionstring。使用(SampleEntities obj=new SampleEntities(connectionstring)){}我通过在我的dll项目上创建分部类并将构造函数参数化为连接字符串,获得了使用DB first方法的解决方案。我创建了具有相同名称空间的分部类。公共部分类SampleEntities:DbContext{public SampleEntities(string connectionstring):base(connectionstring){},所有内容都与前面相同。现在我正在访问这个类。调用时,我在新对象中使用了EntityConnectionStringBuilder.Connectionstring。使用(SampleEntities obj=新的SampleEntities(connectionstring)){
 SampleContext = new SampleContext(ConnectionString);