我需要做什么:假设用户使用 SaveFileDialog 类选择了保存文件的位置,我如何沿着这条路径生成数据库。
注意:我无法弄清楚为什么程序在生成数据库时挂起。
我的文章数据库生成实体:
public class Article
{
public int Id { set; get; }
public string Title { get; set; }
public string Text { get; set; }
public string Image { get; set;
public Article() { }
public Article(string title, string text, string image)
{
Title = title;
Text = text;
Image = image;
}
}
文章上下文
public class ArticleContext : DbContext
{
public ArticleContext() : base("DBConnect") { }
public DbSet<Article> Articles { get; set; }
public static void Save<T>(List<T> item) where T : class
{
using (var db = new ArticleContext())
{
db.Set<T>().AddRange(item);
db.SaveChanges();//Сохраняем все изменения, сделанные в базовой базе данных.
}
}
}
接收到数据库的 DBConnect 字符串
<connectionStrings>
<add name="DBConnect"
connectionString="data source=(localdb)\MSSQLLocalDB;Initial Catalog=ParserHabr;Integrated Security=True;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
该类
DbContext有一个带有参数的构造nameOrConnectionString函数。也就是说,您可以将连接字符串直接传递给它。要使用它,请在您的类
ArticleContext中使用相同的参数创建一个构造函数:从以下位置获取文件名
SaveFileDialog:用它来构造连接字符串。要防止转义错误等,请使用SqlConnectionStringBuilder类。
使用此连接字符串创建上下文: