Entity Framework 4.1 Code First 非常适合创建表和关系。是否可以使用代码优先方法创建 sql 视图或存储过程?任何有关此的指示都将受到高度赞赏。多谢!
我们在实体框架代码优先迁移中支持存储过程。我们的方法是创建一些文件夹来保存 .sql 文件(例如 ~/Sql/)。在该文件夹中创建 .sql 文件以用于创建和删除存储过程。例如。Create_sp_DoSomething.sql
and Drop_sp_DoSomething
。因为SQL是批量运行的CREATE PROCEDURE..
必须是批处理中的第一个语句,使CREATE PROCEDURE...
文件中的第一条语句。另外,不要放GO
之后DROP...
。如果您还没有资源文件,请将资源文件添加到您的项目中。将 .sql 文件从解决方案资源管理器拖到资源设计器的文件视图中。现在创建一个空的迁移(Add-Migration SomethingMeaningful_sp_DoSomething
)并使用:
namespace MyApplication.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class SomethingMeaningful_sp_DoSomething : DbMigration
{
public override void Up()
{
this.Sql(Properties.Resources.Create_sp_DoSomething);
}
public override void Down()
{
this.Sql(Properties.Resources.Drop_sp_DoSomething);
}
}
}
〜/Sql/Create_sp_DoSomething.sql
CREATE PROCEDURE [dbo].[sp_DoSomething] AS
BEGIN TRANSACTION
-- Your stored procedure here
COMMIT TRANSACTION
GO
〜/Sql/Drop_sp_DoSomething.sql
DROP PROCEDURE [dbo].[sp_DoSomething]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)