【问题标题】:Using EF code-first while retaining stored procedures在保留存储过程的同时使用 EF 代码优先
【发布时间】:2012-07-25 07:40:19
【问题描述】:

我已经开始在 EF4.0 中使用代码优先构建一个项目来构建我的数据库。我现在希望在 SQL Server 2008 中创建一些存储过程,这些过程将在创建的数据表上运行。

但是,由于 CF 删除并重新创建了整个数据库,我将丢失我创建的任何存储过程,并且每次都必须重新构建它们 - 这样很容易在不经意间丢失工作。

这里有“最佳实践”吗?当然,我现在总是可以锁定模式并首先忘记代码,但这并不理想。为什么 EF 会删除 整个 DB - 有没有办法删除 只是 表?

【问题讨论】:

  • 由于 EF 代码优先现在 (EF 4.3) 不支持,并且在不久的将来 (EF 5.0) 仍然不支持存储过程,恐怕你可以做的不多.但是:您可以查看EF code-first migrations 以避免不断删除和重新创建您的数据库 - 相反,您可以根据需要逐步升级它。这将使您的存储过程保持不变。

标签: .net sql-server-2008 entity-framework stored-procedures ef-code-first


【解决方案1】:

您可以使用custom database initializer,它将在您每次重新创建数据库时创建您的存储过程。您还可以使用EF migrations 增量构建数据库,而不是在每次更改后删除它。迁移中Up方法可以使用Sql方法创建存储过程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多