TLDR; Làm cách nào để bạn thêm chỉ mục văn bản đầy đủ bằng cách sử dụng Entity framework 5 di chuyển được mã hóaTạo chỉ mục toàn văn trong khung Entity Migrated Migrated
Tôi đang gặp sự cố khi thêm chỉ mục văn bản đầy đủ vào cơ sở dữ liệu bằng cách sử dụng di chuyển khung Entity. Nó cần phải có ngay từ đầu vì vậy tôi đang cố gắng sửa đổi di chuyển InitialCreate được tạo tự động để thêm nó.
Vì không có cách nào để làm điều đó thông qua API DbMigrations tôi đã sử dụng để chạy sql nội tuyến ở cuối mã 'Lên'.
Sql("create fulltext catalog AppNameCatalog;");
Sql("create fulltext index on Document (Data type column Extension) key index [PK_dbo.Document] on AppNameCatalog;");
Khi điều này chạy tất cả mọi thứ được tạo ra tốt đẹp cho đến khi nó đạt đến sql này, sau đó nó ném lỗi sql 'CREATE tuyên bố toàn văn DANH MỤC không thể được sử dụng bên trong một giao dịch người dùng. '. Đó là dự kiến và làm việc như thiết kế.
Rất may Sql() có quá tải cho phép bạn chạy sql bên ngoài giao dịch di chuyển. Tuyệt vời! Tôi đã nghĩ.
Sql("create fulltext catalog AppNameCatalog;", true);
Sql("create fulltext index on Document (Data type column Extension) key index [PK_dbo.Document] on AppNameCatalog;", true);
Nhưng thấp và behold sửa đổi mã để làm điều này (xem ở trên) kết quả trong một lỗi timeout mới 'Timeout hết hạn. Khoảng thời gian chờ trôi qua trước khi hoàn thành thao tác hoặc máy chủ không phản hồi. '
Tôi đã thử loại bỏ sql và chạy nó theo cách thủ công và hoạt động tốt. Tôi cũng diff'd sql được tạo ra có và không có nó chạy bên ngoài một giao dịch và họ là giống hệt nhau vì vậy nó phải là một cái gì đó trong cách sql được thực hiện.
Cảm ơn bạn đã giúp đỡ!
Xin chào, cảm ơn bạn đã nhập liệu. Nó có hoạt động như một sự chuyển đổi riêng biệt không? –
Yip, tôi có nó hoạt động như một di chuyển riêng biệt. Việc tạo bảng xảy ra trong quá trình di chuyển InitialCreate và Danh mục toàn văn và các chỉ mục được tạo trong một di chuyển riêng biệt được dự định sẽ được thực hiện sau khi di chuyển InitialCreate. – jspaey