实体框架6没有创建数据库
本文关键字:创建 数据库 框架 实体 | 更新日期: 2023-09-27 18:15:20
你们好,我使用实体框架6代码首先从我的模型创建一个数据库,当我的程序第一次运行。要做到这一点,我在"Global.asax.cs"中初始化我的模型上下文,但是当我运行程序时,我得到这个错误:
初始化字符串的格式不符合从索引0开始的规范。
请帮帮我,伙计们。确实有很多关于这个错误的堆栈溢出的帖子,但是在我读过的所有帖子中,它们都需要web中现有的连接字符串。配置文件。但在我的情况下,我没有创建数据库,并试图连接到它。我所拥有的是一个现有的模型,并期望EF 6在程序首次运行时创建并初始化数据库。
我在网上试过了。配置,但没有结果。
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb"/>
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
这是我的全局。asax文件:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
using (var context = new MultiTenantContext())
{
var tenants = new List<Tenant>()
{
new Tenant()
{
Id = 1,
Name = "COG",
DomainName = "www.ChurchOfGod.com",
Default = true
},
new Tenant()
{
Id = 1,
Name = "DIV",
DomainName = "www.developers.com",
Default = false
},
new Tenant()
{
Id = 3,
Name = "CW",
DomainName = "www.carwash.com",
Default = false
},
};
context.Tenants.AddRange(tenants);
context.SaveChanges();
}
}
}
这是我的模型上下文和模型类:
public class MultiTenantContext : DbContext
{
public DbSet<Tenant> Tenants { get; set; }
}
public class Tenant
{
public int Id { get; set; }
public string Name { get; set; }
public string DomainName { get; set; }
public bool Default { get; set; }
}
这是我的控制器:
public class TenantController : Controller
{
public ActionResult Index()
{
using (var context = new MultiTenantContext())
{
var tenants = context.Tenants.ToList();
return View(tenants);
}
}
}
将您的模型编辑为:
namespace WebApp.Models
{
public class MultiTenantContext : DbContext
{
public MultiTenantContext() : base("DB")
{
}
public DbSet<Tenant> Tenants { get; set; }
}
}
添加到web。Config> configuration:
<connectionStrings>
<add name="DB" connectionString="data source=.'sqlExpress;initial catalog=XXX;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>