删除了一个表,现在:System.Data.SqlClient.SqlException:无效的对象名'dbo.TipDocuments'

时间:2015-12-18 07:49:54

标签: c# asp.net sql-server entity-framework

我为我的ASP.NET WebForms项目使用Code First Entity Framework。

在我添加一个在数据库中生成新表的新对象之前,它一直运行良好。因为我不知道我在Seed方法中插入的唯一测试行在数据库表中加倍的原因是什么。因此,我从左侧的Server Explorer面板中删除了表,假设在下一次构建时将重新创建表。这种假设是错误的。显然,现在我发出了这个错误。

你是否善意建议我可以重建我的表格以及我应该做些什么来避免这种损失?

这是我的初始化程序类:

public class DocumentDatabaseInitializer : DropCreateDatabaseIfModelChanges<DocumentContext>
{
    protected override void Seed(DocumentContext context)
    {

        GetTipuriDocumente().ForEach(t => context.TipuriDocumente.Add(t));
    }


    private static List<TipDocument> GetTipuriDocumente()
    {
        var tipuriDocumente = new List<TipDocument>
        {
             new TipDocument
             {
                 IDTipDocument = 1,
                 NumeTipDocument = "Cerere",
                 Descriere = "Cerere",
                 TermenRezolvare = 15
             }

        };
        return tipuriDocumente;

    }
}

这是我的背景:

public class DocumentContext : DbContext
{
    public DocumentContext() : base("Users")
    {
    }
    public DbSet<TipDocument> TipuriDocumente { get; set; }
}

这是我的TipDocument类:

public class TipDocument
{
    [Key]
    public int IDTipDocument { get; set; }

    [Required, Display(Name = "Tip Document")]
    public string NumeTipDocument { get; set; }

    public  string Descriere { get; set; }

    [Display(Name ="Termen de rezolvare")]
    public int TermenRezolvare { get; set; }
}

在我的 Global.asax 文件中,我有以下代码:

public class Global : HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        // Initialize the document database.
        Database.SetInitializer(new DocumentDatabaseInitializer());
    }
}

我的 Web.config 有这个连接字符串:

    <add name="Users" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Registratura.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

1 个答案:

答案 0 :(得分:0)

每次更新数据库时,您也可以通过右键单击数据模型并从数据库更新模型来更新实体模型。