繁体   English   中英

提供程序未使用代码优先方法在WPF中返回ProviderManifestToken字符串

[英]the provider did not return a ProviderManifestToken string in WPF using Code First Approach

我想知道应该写些什么来创建数据库,因为在运行应用程序时,仍然没有创建数据库。 我想在Visual Studio 2013中创建本地数据库。

这是我的上下文课

class dbContext : DbContext
{
    public dbContext()
    {
        Database.SetInitializer<dbContext>(new DropCreateDatabaseIfModelChanges<dbContext>());
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
    }

    public DbSet<Employee> Employee { get; set; }
    public DbSet<Credit> Credit { get; set; }
    public DbSet<Debit> Debit { get; set; }
    public DbSet<Salary> Salary { get; set; }
    public DbSet<Category> Category { get; set; }
}

这是主班

public partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();
        Database.SetInitializer<dbContext>(null);
    }

    private void btn_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            dbContext context = new dbContext();
            Category c = new Category();
            c.Id = 1;
            c.Name = "Category";
            c.TotalExpenses = 0;

            context.Category.Add(c);
            context.SaveChanges();
            btn.Content = context.Category.SingleOrDefault(x => x.Id == 1);
        }
        catch (Exception ex)
        {
            while (ex.InnerException != null)
            {
                ex = ex.InnerException;
                MessageBox.Show(ex.Message);
            }
            MessageBox.Show(ex.Message);
        }
    }
}

这是connectionString

<connectionStrings>
    <add name="dbContext"
         connectionString="server=.; database=sample; Integrated Security=true"
         providerName="System.Data.SqlClient"/>
</connectionStrings>

当我尝试在仍未创建的数据库表中保存一些值时,

发生异常“提供程序未返回ProviderManifestToken字符串”

图片中的其他异常 在此处输入图片说明

我应该怎么做才能解决这个问题。

将您的连接字符串更改为此:

<connectionStrings>
<add name="dbContext"
     connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=sample;Integrated Security=SSPI" providerName="System.Data.SqlClient""/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM