在实体框架编码迁移中创建全文索引

2023-11-22

太长了;如何使用 Entity Framework 5 编码迁移添加全文索引

我在使用实体框架迁移向数据库添加全文索引时遇到问题。它需要从一开始就存在,因此我尝试修改自动生成的 InitialCreate 迁移来添加它。

由于没有办法通过 DbMigrations API 来完成此操作,我不得不在“Up”代码末尾运行内联 sql。

Sql("create fulltext catalog AppNameCatalog;");
Sql("create fulltext index on Document (Data type column Extension) key index [PK_dbo.Document] on AppNameCatalog;");

当它运行时,一切都会被创建良好,直到到达此 sql,然后它会抛出 sql 错误'CREATE FULLTEXT CATALOG 语句不能在用户事务内使用。'。这是预期的并且按设计工作。

值得庆幸的是,Sql() 有一个重载,允许您在迁移事务之外运行 sql。惊人的!我想。

Sql("create fulltext catalog AppNameCatalog;", true);
Sql("create fulltext index on Document (Data type column Extension) key index [PK_dbo.Document] on AppNameCatalog;", true);

但是,修改代码来执行此操作(见上文)会导致新的超时错误'超时已过。操作完成之前超时时间已过,或者服务器未响应。'

我试过吐出sql并手动运行它,效果很好。我还对在事务外运行和不运行生成的 sql 进行了比较,它们是相同的,因此它一定是 sql 执行方式中的某些内容。

预先感谢您的任何帮助!


我有类似的问题。我的 InitialCreate 迁移正在创建一个表,然后尝试向该表添加全文索引,使用重载的 Sql() 来指示它需要在事务外执行。我还收到超时错误,我怀疑这是由于线程死锁造成的。

我可以通过使用 Sql() 调用而不是 CreateTable() 并将 CREATE FULL TEXT CATALOG 和 CREATE FULL TEXT INDEX 语句合并到单个 Sql() 调用中来使其在某些情况下工作。然而,这不太可靠。有时它会起作用,有时会因相同的超时错误而失败。

我发现的唯一可靠的解决方案是将目录和全文索引的创建移到单独的迁移中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在实体框架编码迁移中创建全文索引 的相关文章

随机推荐

  • 将 List.of() 用于具有单个元素的不可变列表,而不是 Collections.singletonList()

    Java 9引入了工厂方法来创建不可变的列出与List of method 哪个更适合创建一个元素的不可变列表 List
  • DataGridView 导航到下一行

    我有一个 C winforms 应用程序 我试图让一个按钮工作 该按钮将选择 datagridview 中当前选择的行之后的下一行 到目前为止我的代码是 private void button4 Click object sender Ev
  • 谷歌互动涂鸦

    有人知道 Google 奥运互动涂鸦是如何运作的吗 http www google com doodles soccer 2012 我发现Div是hplogo 样式就在它的上方 例如 hplogo background url logos
  • Angular js:从 jQuery 访问 $scope

    stackoverflow上有好几个这样的问题 我知道 尝试了所有答案 但仍然没有运气 我的html div class headline gameContent headline div jQuery var country headli
  • MKMapView 在 iOS 8 中显示空白屏幕

    我在 iOS 8 中显示 MKMapView 时遇到问题 它在 iOS 7 中运行良好 现在也运行良好 但仅限于模拟器 在设备上 它仅显示注释 但后面不显示地图 它看起来像这样 https i stack imgur com SenGt j
  • .NET 3.5 C# 与 System.Timer System.ObjectDisposeException 的错误:无法访问已释放的对象

    在我的 Windows 服务应用程序中 我经常使用计时器 我只使用 System Timers 我以前从未遇到过这个问题 但突然我遇到了这个异常 System ObjectDisposedException Cannot access a
  • 文本框的默认值

    如何设置文本框的值 我有这个 1 文本框 我想将默认值设置为 0 这样当用户不输入任何内容时我的计算仍然可以 这可以在标记 aspx 中完成 如下所示
  • 是否有与 jQuery .has() 等效的普通 JS?

    在这个 jQuery 选择器中 相当于 has 的普通 JS 是什么 main container children analytics has a not promo Within main container 我正在尝试选择所有 ana
  • 在 QtCreator 中使用 cin

    对于学校 我们使用 C 作为首选语言 我目前正在使用 QtCreator 作为 IDE 它的 GUI 库非常棒 学校正在使用 Visual Studio 然而 我们编写的大多数程序都使用 cin 和 cout 进行输入 输出 cout 作为
  • 为什么 WCF 在作为 Web 服务托管时不能“正确”使用/公开抽象类型

    我设计 Web 服务已经有一段时间了 但直到最近才不得不公开 复杂 的 WCF 服务 我对 WCF 中明显缺乏对抽象类型的 适当支持 感到困惑 当然 你可以使用它们 当然你可以让它们 工作 你只是不会得到你想要的 第一个问题是 如果您从具有
  • Rails 推荐的添加示例数据的方式

    我有一个类似于下面的 Rake 脚本 但我想知道是否有更有效的方法来执行此操作 而不必删除数据库 运行所有迁移 重新播种数据库 然后添加示例数据 namespace db do desc Fill database with sample
  • 不符合 POSIX 的系统上 ssize_t 的替代方案

    我正在编写一个涉及网络 I O 的程序 所以send and recv使用的是 POSIX 函数 他们返回一个ssize t 这也是 POSIX 特定的 包装纸看起来像这个 ATM ssize t sock send int sock co
  • Mac 终端发送带附件的电子邮件

    我正在尝试制作一个 bash 脚本 该脚本将向所有联系人发送一封电子邮件 其中包含一条消息和一个附件 这并非出于恶意目的 我怎么能这样做呢 这可能吗 提前致谢 我之前使用 uuencode 来完成此操作 uuencode source tx
  • 如何动态添加组件到Java JScrollPane

    我正在尝试用 Java 制作 GUI 应用程序 但在 JScrollPane 中动态添加 更新组件时遇到问题 我有两个 JPanel P1 和 P2 其中 P1 有一个用于设置应用程序参数的表单 P2 包含一些 GUI 组件 这些组件根据
  • Angularjs 合并两个对象,忽略空值和缺失值

    例如 从这两个对象 var object1 color yellow size null age 7 weight null var object2 color blue size 51 age null 我想要这个 对象 2 覆盖对象 1
  • 为什么 Angular 8 路由器无法在带有 WkWebView 的 Cordova IOS 中工作?

    我有一个现有的应用程序构建Angular8 及其代码由一个网站和 2 个移动应用程序共享Android and IOS 在帮助下捆绑Cordova 它工作正常 但苹果公司宣布他们很快将不再支持使用UIWebView 自 2020 年 4 月
  • 让匿名用户使用 Google Drive SDK 将文件上传到我的 Google 云端硬盘

    我正在构建一个网络应用程序 我需要让用户上传文件 我想将所有用户上传的文件存储在 我的 中央 Google 云端硬盘中 用户不必登录他们的 Google 帐户或授权该应用程序 因为他们将上传到我的 Google 云端硬盘 这可能吗 您应该使
  • 按位运算 - 零填充右移(>>>)用法?

    一般来说 位移位 gt gt lt lt 允许我们除 乘 2 例子 9 base 10 00000000000000000000000000001001 base 2 9 gt gt 2 base 10 000000000000000000
  • Wpf Observable 集合和 DataGrid 不更新更改

    我在视图模型中有一个可观察集合 它实现了 Bindable Base 如下所示 请查看 MoveUp 和 MoveDown 方法 它们绑定到视图中的两个按钮 当按下向上按钮时 我希望数据网格中的选定行根据数据库中的序列列向上移动一步 向下移
  • 在实体框架编码迁移中创建全文索引

    太长了 如何使用 Entity Framework 5 编码迁移添加全文索引 我在使用实体框架迁移向数据库添加全文索引时遇到问题 它需要从一开始就存在 因此我尝试修改自动生成的 InitialCreate 迁移来添加它 由于没有办法通过 D