繁体   English   中英

为什么我的数据库表没有生成,我的连接字符串正确? ASP.NET MVC

[英]Why are my database tables not generating, my connection string is correct? asp.net mvc

我对使用mvc比较mvc ,我创建了一个带有scaffold controllersCRUD views多个模型的应用程序。 visual studio's local hostlocaldb上运行我的应用程序时,我的应用程序可以正常运行,但是当尝试部署我的应用程序时,我收到一个错误消息,

处理您的请求时出错

在与我的模型相关的页面上。

我已经在生产iis服务器上部署了我的项目,并在ms sql服务器上设置了用户登录名和数据库。 我的项目具有与sql服务器交互的正确连接字符串,但是,在观察数据库时,未创建与我的项目模型关联的表-这是我收到错误的路由原因。

有谁能建议为什么不创建我的表? 以下是我的代码示例,请注意,我也在使用asp.net Identity功能,这些表也未创建:

我的模型之一的示例:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace newwebsite.Models
{
    public class Store
    {
    public int ID { get; set; }
    public string ItemName { get; set; }
    public string ItemImageName { get; set; }
    public decimal ItemPrice { get; set; }
    public string ItemDescription { get; set; }
    public string ItemFeatures { get; set; }
}
public class StoreDBContext : DbContext
{
    public DbSet<Store> Blog { get; set; }

    public StoreDBContext()
        : base("DefaultConnection")
    {
    }

    public static StoreDBContext Create()
    {
        return new StoreDBContext();
    }
}
}

我的连接字符串示例:

<add name="DefaultConnection" connectionString="Data Source='MSSqlServerIP'; Initial Catalog=NewWebsite2017; User ID=NewWebsite2017; Password=*****" providerName="System.Data.SqlClient" />

部署项目后,所有视图都可以使用,这表明我的控制器适合这些视图。 我纯粹在应该显示数据库数据的地方出现错误。 我相信这些错误是由于未创建我的表造成的,但不确定为什么会这样。

更新我按如下方式编辑了模型(以及相应的其他模型),但是仍然没有运气。

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace newwebsite.Models
{
public class Store
{
    public int ID { get; set; }
    public string ItemName { get; set; }
    public string ItemImageName { get; set; }
    public decimal ItemPrice { get; set; }
    public string ItemDescription { get; set; }
    public string ItemFeatures { get; set; }
}
public class StoreDBContext : DbContext
{
    public DbSet<Store> Blog { get; set; }

    public StoreDBContext()
: base("DefaultConnection")
{
        Database.SetInitializer<StoreDBContext>(new    CreateDatabaseIfNotExists<StoreDBContext>());
    }

}

}

在数据库上下文中指定数据库初始化程序

public StoreDBContext()
    : base("DefaultConnection")
{
   Database.SetInitializer<StoreDBContext>(new CreateDatabaseIfNotExists<StoreDBContext>());
}

还有其他几个初始化程序。 例如DropCreateDatabaseIfModelChangesDropCreateDatabaseAlways (请注意,这可能会删除您的数据 ),或者您可以DropCreateDatabaseAlways自己的初始化程序。

暂无
暂无

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

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