Tôi vừa tạo ra một cơ sở dữ liệu và thực hiện di chuyển đầu tiên của tôi (chỉ cần thêm một bảng đơn giản). Bây giờ tôi muốn thêm một số thủ tục được lưu trữ mà tôi vừa thêm bằng cách viết sql và thực hiện nó trong Management Studio. Nhưng tôi muốn bao gồm các thủ tục được lưu trữ này nếu có thể trong quá trình di chuyển để chúng được lưu và tôi có thể chạy phương thức Up hoặc Down đối với chúng. Điều này có thể và nếu như vậy cú pháp nào cần được sử dụng? Hoặc tôi sẽ phải thêm/chỉnh sửa/xóa chúng bằng Management Studio?Mã số đầu tiên di chuyển và lưu trữ thủ tục
Trả lời
Tôi đã làm điều này như vậy ...
Trong lớp di dân hiện nay -
public partial class MyMigration : DbMigration
{
public override void Up()
{
... other table creation logic
// This command executes the SQL you have written
// to create the stored procedures
Sql(InstallScript);
// or, to alter stored procedures
Sql(AlterScript);
}
public override void Down()
{
... other table removal logic
// This command executes the SQL you have written
// to drop the stored procedures
Sql(UninstallScript);
// or, to rollback stored procedures
Sql(RollbackScript);
}
private const string InstallScript = @"
CREATE PROCEDURE [dbo].[MyProcedure]
... SP logic here ...
";
private const string UninstallScript = @"
DROP PROCEDURE [dbo].[MyProcedure];
";
// or for alters
private const string AlterScript = @"
ALTER PROCEDURE [dbo].[AnotherProcedure]
... Newer SP logic here ...
";
private const string RollbackScript = @"
ALTER PROCEDURE [dbo].[AnotherProcedure]
... Previous/Old SP logic here ...
";
}
Còn nếu bạn đang thay đổi quy trình vì nó đã được tạo ra trong lần di chuyển trước và sau đó bạn cần phải đi xuống? Bạn sẽ không chỉ DROP thủ tục nó sẽ phải quay trở lại trạng thái ban đầu của nó là bất cứ thủ tục như thế nào trước đây ... – Ryan
@Ryan cập nhật để hiển thị rõ ràng hơn một thay đổi so với tạo/thả – NKeddie
Tôi thích cách tiếp cận cụ thể hơn http://stackoverflow.com/a/27711523/344895 – Madman
Tôi đang sử dụng EF6 và lớp DbMigration
cung cấp phương pháp để Tạo/Alter/Xóa lưu trữ thủ tục
Tạo một thủ tục lưu trữ mới
public partial class MyFirstMigration : DbMigration { public override void Up() { // Create a new store procedure CreateStoredProcedure("dbo.DequeueMessages" // These are stored procedure parameters , c => new{ MessageCount = c.Int() }, // Here is the stored procedure body @" SET NOCOUNT ON; SELECT TOP (@MessageCount) * FROM dbo.MyTable; "); } public override void Down() { // Delete the stored procedure DropStoredProcedure("dbo.DequeueMessages"); } }
Sửa đổi một stored procedure
public partial class MySecondMigration : DbMigration { public override void Up() { // Modify an existing stored procedure AlterStoredProcedure("dbo.DequeueMessages" // These are new stored procedure parameters , c => new{ MessageCount = c.Int(), StatusId = c.Int() }, // Here is the new stored procedure body @" SET NOCOUNT ON; SELECT TOP (@MessageCount) * FROM dbo.MyTable WHERE StatusId = @StatusId; "); } public override void Down() { // Rollback to the previous stored procedure // Modify an existing stored procedure AlterStoredProcedure("dbo.DequeueMessages" // These are old stored procedure parameters , c => new{ MessageCount = c.Int() }, // Here is the old stored procedure body @" SET NOCOUNT ON; SELECT TOP (@MessageCount) * FROM dbo.MyTable; "); } }
- 1. Di chuyển các thủ tục được lưu trữ bằng Flyway
- 2. Mã khung thực thể có hỗ trợ đầu tiên được lưu trữ thủ tục không?
- 3. Sử dụng thủ tục lưu trữ trong khung Entity (mã đầu tiên)
- 4. Thủ tục được lưu trữ hoặc mã số
- 5. WebMatrix và lưu trữ Thủ tục
- 6. EF4.1 Mã Đầu tiên: Quy trình được lưu trữ với thông số đầu ra
- 7. Bắt tham số đầu ra thủ tục lưu trữ với LINQ và Entity Framework
- 8. Mẫu lưu trữ với các thủ tục được lưu trữ
- 9. C#/SQL Lấy tất cả các thủ tục được lưu trữ và mã số của chúng
- 10. Gọi thủ tục lưu trữ trong một thủ tục được lưu trữ trong MySQL
- 11. Gọi thủ tục lưu trữ từ một thủ tục lưu trữ SQL Server
- 12. Kiểm tra thủ tục và lưu trữ thủ tục bằng cách sử dụng Nunit
- 13. Làm thế nào để gọi Thủ tục lưu trữ (với 2 tham số) trong một thủ tục lưu trữ?
- 14. Tham số thủ tục lưu trữ SQL Server
- 15. mysql lưu trữ-thủ tục: ra tham số
- 16. Thủ tục lưu trữ trong phpMyAdmin
- 17. Thủ tục lưu trữ Vs. Xem
- 18. Gọi một thủ tục lưu trữ python
- 19. Thủ tục lưu trữ MySQL Quyền
- 20. SQL Server lưu trữ mã thủ tục được lưu trữ ở đâu?
- 21. IF/ELSE Thủ tục lưu trữ
- 22. Thủ tục lưu trữ thực hiện một thủ tục lưu sẵn
- 23. lưu trữ thủ tục trả về varchar
- 24. Thủ tục lưu trữ MySQL và tập lệnh PHP
- 25. Thủ tục lưu trữ và quyền - Có đủ EXECUTE không?
- 26. Chuyển dữ liệu có thể được lưu trữ thành thủ tục được lưu trữ
- 27. Thủ tục lưu trữ và cập nhật EDMX
- 28. Để chuyển hàng số lượng lớn dữ liệu vào các thủ tục được lưu trữ
- 29. Thực hiện một thủ tục được lưu trữ trong một thủ tục lưu sẵn
- 30. Thủ tục lưu trữ trả về nhiều bộ kết quả
thể dupe http://stackoverflow.com/questions/7667630/can-you-create-sql-views-stored-procedure-using-entity- framework-4-1-code-firs –