实体框架不创建数据库

2024-04-23

一直在使用 ASP.NET MVC 3 项目尝试 Entity Framework 4.1 的 Code First 功能。

但是,数据库 (SQL Server 2008 R2) 不会在应用程序启动时自动创建表映射。关于如何让它这样做有什么想法吗?

该项目只有一个POCO:

namespace RIS.Models
{
    public class Person
    {
        [Key]
        public virtual string NRIC { get; protected set; }
        public virtual string FirstName { get; protected set; }
        public virtual string MiddleName { get; protected set; }
        public virtual string LastName { get; protected set; }
    }
}

它还具有以下数据库上下文类:

namespace RIS.Models
{
    public class RIS_DB : DbContext
    {
        public DbSet<Person> People { get; set; }
    }
}

我已将 SQL 连接字符串添加到全局 web.config 文件中,如下所示:

<add name="RIS_DB" connectionString="Data Source=URAHARA-PC;Initial Catalog=RIS_DB;
Integrated Security=SSPI;Pooling=False" providerName="System.Data.SqlClient"/>

如果 Global.asax.cs 文件中不存在数据库,则还有一条显式指令用于创建数据库:

protected void Application_Start()
{
    Database.SetInitializer(new CreateDatabaseIfNotExists<RIS_DB>());

    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}

转而在MSDN论坛上询问,得到了满意的答案:

实体框架在第一次访问之前不会创建数据库。当前代码块位于Application_Start()仅指定首次访问期间创建数据库时要使用的策略。

要在启动时触发数据库的创建,必须创建数据库上下文的实例,并且context.Database.Initialize(true)必须被调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架不创建数据库 的相关文章

随机推荐

  • 如何为静态变量分配内存?

    在下面的程序中 class Main static string staticVariable Static Variable string instanceVariable Instance Variable public Main Th
  • Micro USB 音频 - Android 开放配件

    好的 我正在从事一个处于研究阶段的独立项目 我浏览了互联网 没有发现关于这个话题的任何好东西 我发现的网站在编程社区中与 StackOverflow 一样各自独立 使用 Android 2 3 4 Gingerbread 中包含的 Andr
  • 固定表格标题与水平和垂直滚动主体

    目标 表头和表体的列宽应相同 表格标题固定在垂直滚动条上 要在水平滚动上移动的表标题 标头显示在 HTML 的可滚动部分内 问题陈述 表格标题在垂直滚动时未固定 标题显示在 HTML 的可滚动部分之外 当标题位置固定时 我看过很多帖子 但找
  • 带有图像和分隔符的完全对齐的水平菜单

    I would like to achieve this fully justified horizontal menu 对齐是通过 Flexbox 完成的并且有效 但是我也无法使分隔的中点对齐 它们是通过伪类使用 css content
  • 解决 SML/NJ 编译管理器中的库冲突

    我正在使用 SML NJ 110 79 其中包括对 Successor ML 项目定义的新结构的支持 其中 Fn https github com SMLFamily BasisLibrary wiki 2015 005 Addition
  • 如何访问小部件的属性

    我是 Yii 框架的新手 我正在尝试访问小部件的属性 比如说 CMenu 我想更改一些公共属性的值 如 activeCssClass firstItemCssClass lastItemCssClass htmlOptions 等 那么你怎
  • 如何在 sveltekit 应用程序中将菜单项设置为活动状态

    我一直在开发 sveltekit 应用程序 最近我的主导航菜单遇到了问题 当加载或刷新应用程序时 与当前 URL 对应的当前菜单项不会设置为活动状态 即菜单项 Home 的 URL 为 我很难在网上找到任何有用的东西来演示如何设置它 但我有
  • BND 将相同的包放入manifest.mf 的导出和导入部分

    我有一个 Vaadin 应用程序 我正在尝试使用 Maven BND 将其构建为一组 OSGI 包 我无法将捆绑包部署到 Apache Felix 因为某些依赖项无法解决 Apache Felix 抱怨找不到捆绑包 A 所需的包 XYZ 尽
  • 如何降级旧版 Android 中的 java.time 代码?

    我有这个简洁的代码 它生成两个日期之间的天数列表 然后是当天的日期 以及它在列表中的位置 最重要的是 所有日期都采用相同的格式 这使得很容易比较它们 Create list of days String s 2018 08 28 Strin
  • 用于 AR 的 Android 视频流捕获

    我希望能够从 Android 手机摄像头捕获视频 然后处理该视频 处理涉及向直播流添加一层 AR 这在安卓上可行吗 很确定应该是这样 我查看了android网站 http developer android com guide topics
  • 如何检测设备是否支持刘海屏?

    目前我面临着检测移动设备是否支持 Android 中的缺口显示的问题 任何人都可以帮助我吗 我需要使用 android studio 中的代码来完成此操作 Thanks 一些奥利奥设备也有凹口显示 如果您的目标是支持所有操作系统 那么您可以
  • Python:使用虚拟类来传递变量名称?

    这是后续返回一个字典的函数 其键是输入参数的名称 https stackoverflow com questions 9586305 python function that returns a dict whose keys are th
  • 比较 dateutil.relativedelta

    我正在尝试在两个相对增量之间进行 gt 比较 if relativedelta current date last activity date gt relativedelta minutes 15 以下是 Eclipse 中调试器窗口的输
  • 更改python文件的第一行

    我只需要读取一个大文件的第一行并更改它 有没有一种技巧可以使用Python仅更改文件的第一行并将其另存为另一个文件 我所有的代码都是用 Python 完成的 这将帮助我保持一致性 这个想法是不必读取然后写入整个文件 shutil copyf
  • 尝试用C语言创建链表

    我正在尝试用 C 语言创建一个链表结构 但我不太确定出了什么问题 我的错误是 linked c 6 2 error unknown type name linkedList linked c In function makeList lin
  • 如何将图像从 React 上传到 ASP.NET Core Web API?

    我在 mt 服务器端有 Web API 控制器 HttpPost CreateImage public void CreateImage FromBody ImageDTO img Image image new Image FileNam
  • Mule 文件入站轮询配置

    我想以特定的时间间隔一次从特定目录轮询 10 个文件 如果该目录中存在 250 个文件 Mule 文件入站应从 250 个文件中取出 10 个文件并处理它们 然后再处理 10 个文件等 我的轮询频率值为 10000 我尝试像这样应用 max
  • 递归获取所有孩子

    我需要递归地从嵌套对象中获取所有子对象 我已经写了一个函数来做到这一点 有点 但我认为它可以改进 我怎样才能让它更短更干净 我已经包含了我用于测试的数据以及我编写的需要改进的函数 let data id 1 child id 2 child
  • 从 GCM 2.0 迁移到 GCM 3.0 InstanceID API

    目前我已经在 Play 商店上发布了我的应用程序 并且在该项目中我正在使用 compile com google android gms play services 7 0 0 Google Play 服务库版本7 0在我的项目中使用 Go
  • 实体框架不创建数据库

    一直在使用 ASP NET MVC 3 项目尝试 Entity Framework 4 1 的 Code First 功能 但是 数据库 SQL Server 2008 R2 不会在应用程序启动时自动创建表映射 关于如何让它这样做有什么想法