Entity Framework 导入没有模型优先方法的存储过程
Entity Framework Imports stored procedures without model-first approach
现在我的项目中有一个 model-first
方法和 EDMX
模型。
但是我如何在没有 EDMX
文件的情况下工作并能够从数据库中导入存储过程签名以及在数据库更改时更新我的实体?
我认为您正在寻找(错误命名的)"Code First" 使用 "Reverse Engineering" 从数据库创建代码。 http://haroldrv.com/2015/04/using-entity-framework-code-first-from-database/。
"Database First" 仍然使用 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)
);
现在我的项目中有一个 model-first
方法和 EDMX
模型。
但是我如何在没有 EDMX
文件的情况下工作并能够从数据库中导入存储过程签名以及在数据库更改时更新我的实体?
我认为您正在寻找(错误命名的)"Code First" 使用 "Reverse Engineering" 从数据库创建代码。 http://haroldrv.com/2015/04/using-entity-framework-code-first-from-database/。 "Database First" 仍然使用 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)
);