实体框架在没有模型优先方法的情况下导入存储过程

时间:2016-05-26 08:20:46

标签: entity-framework entity-framework-5

现在我在项目中使用model-first模型EDMX。 但是,如何在没有EDMX文件的情况下工作,并且能够从数据库导入存储过程签名,以及在更改数据库时更新我的​​实体?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找(错误命名)" Code First"使用"逆向工程"从数据库创建代码。 http://haroldrv.com/2015/04/using-entity-framework-code-first-from-database/。 "数据库第一"仍然使用EDMX映射文件,许多人发现这些文件有问题,并且不再用于最新的EF Core 1(以前的EF 7)。

就将存储过程映射到实体而言,此MSDN文章https://msdn.microsoft.com/en-us/data/dn468673显示了如何操作。我不相信有一种自动方式可以像使用表本身那样提取存储过程签名。

  modelBuilder  
  .Entity<Blog>()  
  .MapToStoredProcedures(s =>  
    {  
      s.Update(u => u.HasName("modify_blog"));  
      s.Delete(d => d.HasName("delete_blog"));  
      s.Insert(i => i.HasName("insert_blog"));  
    });

您也可以直接调用存储过程而不进行如下映射。

var blogs = context.Database.SqlQuery<Blog>(
   "getBlogs @param1", new SqlParameter("param1", param1)
);