データベースを作成し、最初の移行を行いました (単純なテーブルの追加のみ)。ここで、SQL を記述して Management Studio で実行することによって追加したばかりのストアド プロシージャをいくつか追加したいと考えています。しかし、可能であればこれらのストアド プロシージャを移行に含めて保存し、それらに対して Up または Down メソッドを実行できるようにしたいと考えています。これは可能ですか?もしそうなら、どの構文を使用する必要がありますか? それとも、Management Studio を使用してそれらを追加/編集/削除する必要がありますか?
質問する
22152 次
4 に答える
1
namespace QuickProject.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class CreateStoredProcedure_GellAllAgents : DbMigration
{
public override void Up()
{
CreateStoredProcedure("dbo.GellAllAgents", c => new
{
DisplayLength = c.Int(10),
DisplayStart = c.Int(0),
UserName = c.String(maxLength: 255, defaultValueSql: "NULL"),
FullName = c.String(maxLength: 255, defaultValueSql: "NULL"),
PhoneNumber = c.String(maxLength: 255, defaultValueSql: "NULL"),
LocationDescription = c.String(maxLength: 255, defaultValueSql: "NULL"),
AgentStatusId = c.Int(defaultValueSql: "NULL"),
AgentTypeId = c.Int(defaultValueSql: "NULL")
}, StoredProcedureBody);
}
public override void Down()
{
DropStoredProcedure("dbo.GellAllAgents");
}
private const string StoredProcedureBody = @"
Declare @FirstRec int, @LastRec int
Set @FirstRec = @DisplayStart;
Set @LastRec = @DisplayStart + @DisplayLength;
With CTE_AspNetUsers as
(
Select ROW_NUMBER() over (order by AspNetUsers.Id) as RowNum,
COUNT(*) over() as TotalCount, AspNetUsers.Id, AspNetUsers.FullName, AspNetUsers.UserName, AspNetUsers.PhoneNumber, Locations.Desciption as LocationDescription, Cities.Name as LocationCity, AgentStatus.Name as AgentStatusName, AgentTypes.Name as AgentTypeName
from AspNetUsers
join Locations on AspNetUsers.LocationId = Locations.id
join Cities on Locations.CityId = Cities.Id
join AgentStatus on AspNetUsers.AgentStatusId = AgentStatus.Id
join AgentTypes on AspNetUsers.AgentTypeId = AgentTypes.Id
where (Discriminator = 'Agent'
and (@UserName is null or UserName like '%' + @UserName + '%')
and (@FullName is null or FullName like '%' + @FullName + '%')
and (@PhoneNumber is null or PhoneNumber like '%' + @PhoneNumber + '%')
and (@LocationDescription is null or @LocationDescription like '%' + (select Cities.Name from Cities where Locations.CityId = Cities.Id) + '%' or @LocationDescription like '%' + Desciption + '%')
and (@AgentStatusId is null or AgentStatusId = @AgentStatusId)
and (@AgentTypeId is null or AgentTypeId = @AgentTypeId)
)
group by AspNetUsers.Id, AspNetUsers.FullName,AspNetUsers.UserName, AspNetUsers.PhoneNumber, Locations.Desciption, Cities.Name, AgentStatus.Name, AgentTypes.Name
)
Select *
from CTE_AspNetUsers
where RowNum > @FirstRec and RowNum <= @LastRec
";
}
}
結果、SQLサーバーでSPを表示/変更すると、「ALTER PROCEDURE」が表示されるのはそのためです
于 2018-10-06T13:23:34.417 に答える