【发布时间】:2011-04-24 13:34:44
【问题描述】:
我正在使用实体框架和代码优先方法构建一个 Web 应用程序,到目前为止我真的很喜欢它,除了一件事。初始化过程和播种数据是垃圾。
我已经按照 ASP.NET MVC 的建议进行了设置,在应用程序启动时调用了 setinitialiser,并使用了一个自定义初始化类来添加数据,但它似乎总是默默地失败并且永远不会工作。 (数据库创建工作只是数据初始化失败)
谁能为此提供推荐的做法或从文件运行 sql 脚本的方法。
添加数据的给定方法,特别是对于演示站点,似乎很麻烦,我希望能够直接从作为安装过程的一部分运行一次的文件直接运行数据库脚本,而不是依赖于失败,没有任何迹象表明出了什么问题。
编辑
我注意到它会抛出异常(应该由实体框架处理的愚蠢的 datetime -> datetime2 转换错误。)
但问题的一部分可能是我的 express 2010 版本没有出现错误,调试时似乎有很多错误。
但问题仍然存在。我发现它本质上是在数据库上运行 sql 脚本的一种繁琐且错误的方式。当有人在 IIS 中安装我的 Web 应用程序时,不想为了设置演示站点而使用大量方法和类。
【问题讨论】:
-
拥有一个静态 sql 脚本不会首先破坏代码优先的目的吗?我也不能说我偶然发现了任何播种问题,有关问题和代码 sn-ps 的更多详细信息会有所帮助。
-
没有那么多代码来粘贴该方法非常简单,我可以在种子方法中放置断点并且它们可以工作,但是 context.savechanges 似乎永远不会工作。
-
如果没有太多要粘贴的代码,你为什么拒绝这样做?
-
因为别人这样做会惹恼我
标签: asp.net asp.net-mvc entity-framework entity-framework-4.1