是否可以使用 Code First
在 sql server 中创建数据库函数?
喜欢
CREATE FUNCTION [dbo].[fnIsPaid] ...
以下是我根据 ChrFin 的建议得出的结果。我把它标记为答案。但让我在这里做一个更详细的记录。
在包管理器控制台
Add-Migration AddFnIsPaid`。
这将创建一个以时间戳为前缀的 DbMigration
类。
在这个迁移类中,我有一个用于 Up()
和 Down()
方法的创建脚本和删除脚本:
public partial class AddFnIsPaid : DbMigration
{
public override void Up()
{
Sql(_createFunctionScript);
}
public override void Down()
{
Sql(DropFunctionScript);
}
#region SQL Scripts
private readonly string _createFunctionScript = string.Concat(
"CREATE FUNCTION [dbo].[fnIsPaid] ",
"(",
...
") ",
"RETURNS bit ",
"AS ",
"BEGIN ",
...
"END"
);
private const string DropFunctionScript = "DROP FUNCTION [dbo].[fnIsPaid]";
#endregion
}
最佳答案
不,您只能告诉它将 CRUD 操作映射到存储过程 (EF 6+),例如:
modelBuilder
.Entity<Post>()
.MapToStoredProcedures();
但是您可以在迁移中执行自定义 SQL:
public override void Up()
{
Sql("CREATE FUNCTION [dbo].[fnIsPaid] ...");
}
关于c# - 如何首先在代码中创建函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24998513/