[英]Why are my database tables not generating, my connection string is correct? asp.net mvc
我对使用mvc
比较mvc
,我创建了一个带有scaffold controllers
和CRUD views
多个模型的应用程序。 在visual studio's local host
和localdb
上运行我的应用程序时,我的应用程序可以正常运行,但是当尝试部署我的应用程序时,我收到一个错误消息,
处理您的请求时出错
在与我的模型相关的页面上。
我已经在生产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>());
}
还有其他几个初始化程序。 例如DropCreateDatabaseIfModelChanges
或DropCreateDatabaseAlways
(请注意,这可能会删除您的数据 ),或者您可以DropCreateDatabaseAlways
自己的初始化程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.