EF 6.1.3 中的存储过程
Stored procedures in EF 6.1.3
我是 Entity Framework 的新手,运行 遇到了问题。
我在数据库(在 SMMS 中)中创建了一个存储过程,并且从 .NET 触发工作正常。
但是,如果数据库被擦除(如种子方法填充数据),我希望 EF 将 SP 提供给数据库。我也想让我的 SP 与我的代码库的其余部分一起进行版本控制。
那么,我如何将 SP 添加到我的项目中,以使用 DB 创建它,我猜它就像一个迁移,但没有直接连接到模型 class.
是否可以生成 "empty" 迁移,然后根据我的需要进行修改?使用创建和删除 SP 的 up 和 down 方法?
是的,可以生成一个空迁移,然后根据您的需要对其进行修改。在包管理器中 Add-Migration "AddMyStoredProcedure"
然后在你的Up方法中:
Sql(@"EXECUTE('CREATE PROCEDURE MyStoredProcedure...etc ");
在你的 Down 方法中:
Sql(@"EXECUTE('DROP PROCEDURE MyStoredProcedure')");
我倾向于使用 DbMigration
class 中的 Sql
method, but there are also CreateStoredProcedure
and DropStoredProcedure
方法,您可能更喜欢
我是 Entity Framework 的新手,运行 遇到了问题。 我在数据库(在 SMMS 中)中创建了一个存储过程,并且从 .NET 触发工作正常。
但是,如果数据库被擦除(如种子方法填充数据),我希望 EF 将 SP 提供给数据库。我也想让我的 SP 与我的代码库的其余部分一起进行版本控制。 那么,我如何将 SP 添加到我的项目中,以使用 DB 创建它,我猜它就像一个迁移,但没有直接连接到模型 class.
是否可以生成 "empty" 迁移,然后根据我的需要进行修改?使用创建和删除 SP 的 up 和 down 方法?
是的,可以生成一个空迁移,然后根据您的需要对其进行修改。在包管理器中 Add-Migration "AddMyStoredProcedure"
然后在你的Up方法中:
Sql(@"EXECUTE('CREATE PROCEDURE MyStoredProcedure...etc ");
在你的 Down 方法中:
Sql(@"EXECUTE('DROP PROCEDURE MyStoredProcedure')");
我倾向于使用 DbMigration
class 中的 Sql
method, but there are also CreateStoredProcedure
and DropStoredProcedure
方法,您可能更喜欢