【问题标题】:How to add stored procedures to existing database model (in Code first Approach)?如何将存储过程添加到现有数据库模型(在代码优先方法中)?
【发布时间】:2017-11-02 09:17:20
【问题描述】:

我正在做一个项目,其中实现了代码优先 E-F 但无法访问存储过程。我现在如何将它们添加到模型中?

【问题讨论】:

  • 为什么在使用代码优先实体框架时需要存储过程?您通常会使用控制器来合并存储过程的逻辑。
  • 我正在处理一个现有项目。我想使用存储过程。重建现有逻辑将非常耗时。我们现在不能访问存储过程吗?

标签: c# entity-framework-6 ef-code-first


【解决方案1】:

好吧,如果它是一个现有的数据库,您可以只使用 Microsoft SQL Server Management Studio 来访问存储过程。它们可以在对象资源管理器中的“您的数据库”>“可编程性”>“存储过程”下找到。虽然我很确定同时使用存储过程和实体框架并不常见。

要回答您的问题,请右键单击上述对象资源管理器中的存储过程过滤器,然后单击存储过程选项以将存储过程添加到您的数据库中。

如果您不想使用 MSSMS,您还可以使用实体框架提供的迁移功能在 C# 中添加存储过程,在 this question. 中进行了说明

【讨论】:

  • 实际上存储过程已经存在于我的数据库中。当实现代码优先 ef 时,可能忘记在“OnModelCreating”方法中添加存储过程以及数据库表。现在我想将 SP 添加到现有的实体模型。这可能吗?
  • 您可以使用modelBuilder.Entity<YourModel>().MapToStoredProcedures(); 将模型绑定到您的存储过程,this MSDN page. 对此进行了解释
  • 是的,我已将此添加到 OnModelCreating mrthod,并构建了解决方案。但没有运气。我需要运行迁移吗?再次运行?
  • 第一次使用数据模型或在启动代码中使用初始化方法时会调用 OnModelCreating 方法:Database.SetInitializer(new CreateDatabaseIfNotExists<MyDbContext>());
猜你喜欢
  • 2014-01-23
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
  • 2020-02-21
  • 1970-01-01
相关资源
最近更新 更多