我正在使用VS2013 Ultimate创建WPF应用程序,我想在Visual Studio中创建本地数据库。这是我试图编写的示例connectionString
App.config文件中的ConnectionString
<connectionStrings>
<add name="RoznamchaContext"
connectionString="Server=.;database=sample;integrated security=true;"/>
</connectionStrings>
Context Class就在这里
class RoznamchaContext : DbContext
{
public DbSet<Admin> Admins { get; set; }
public DbSet<Tag> Tags { get; set; }
public DbSet<Task> Tasks { get; set; }
public DbSet<Task_Tag> Task_Tags { get; set; }
public RoznamchaContext() : base("RoznamchaContext")
{ }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
这是我的主要课程,我有一个按钮,当我按下按钮时,它给了我一个图像中显示的异常,按钮点击事件也在下面给出。
public partial class MainWindow : Window
{
public MainWindow()
{
Database.SetInitializer<RoznamchaContext>(null);
InitializeComponent();
}
public static int count = 0;
private void btn_Click(object sender, RoutedEventArgs e)
{
try
{
RoznamchaContext context = new RoznamchaContext();
context.Tags.Add(new Models.Tag { PK_Tag = count, Name = "Tag" + count });
context.SaveChanges();
count++;
btn.Content = count.ToString();
}catch(Exception ex)
{ MessageBox.Show(ex.Message); }
}
}
答案 0 :(得分:1)
你的连接字符串几乎是正确的。如果您使用的是Entity框架,还应该在配置中添加providerName
:
<connectionStrings>
<add name="RoznamchaContext"
connectionString="Server=.;database=sample;integrated security=true;"
providerName="System.Data.SqlClient" />
</connectionStrings>
现在您可以使用连接字符串名称作为DbContext
的参数:
class YourContext : DbContext
{
public YourContext()
: base("RoznamchaContext")
{ }
}
当您使用与数据上下文相同的名称命名连接字符串时,也可以使用约定优于配置。然后,您可以使用默认DbContext
constructor(不带参数):
class RoznamchaContext : DbContext
{
}
<add name="RoznamchaContext"
connectionString="Server=.;database=sample;integrated security=true;"
providerName="System.Data.SqlClient" />
<强>更新强>
另一种解决方案是在应用程序启动时指定数据库初始化程序:
// add next line to the Run() method or Main method or other initialization method
Database.SetInitializer<RoznamchaContext>(null);