有没有办法知道 sql 服务器列是否通过 EF 进行全文索引
本文关键字:EF 全文索引 是否 服务器 sql 有没有 | 更新日期: 2023-09-27 18:31:41
我正在构建一个基于 EF 和 Linq.Expression 的请求生成器。我想知道是否有办法通过 EF 中的某处获取列信息。
我正在寻找有关全文索引的信息,您可以在 SQl 服务器的属性窗口中看到这些信息。
有人可以帮忙吗?
有关信息,下面是一个 T-SQL 请求,用于检索表 PitMingTable 的此信息:
select sc.name, columnproperty(OBJECT_ID('PitMingTable'),sc.name,'IsFulltextIndexed')
from sysobjects so
inner join syscolumns sc on so.id = sc.id
where so.name like 'PitMingTable' and so.xtype ='u'
感谢。
我认为这超出了实体框架的范围,因为它在编译时生成实体数据模型。DBA 可以修改数据库以索引列,而数据模型将无法更新自身以反映这一点。此外,实体框架设计为与数据库无关,并且没有在不同数据库平台之间一致公开此类元数据的约定。
如果你不介意用一些SQL弄脏你的手,你总是可以写一个存储的过程来找出这种东西。这个答案:SQL Server DB中所有索引和索引列的列表应该给你一个良好的开端,假设你使用的是SQL Server。
No.EF 对查询数据库元数据没有任何本机支持,但你可以采用 SQL 并通过 EF (ExecuteStoreQuery
) 执行它。
您可以使用上下文执行查询。要获取全文索引的列表,请使用以下命令:
SELECT * FROM sys.fulltext_indexes
这是描述: sys.fulltext_indexes
如果您不想使用 sql 查询,我认为您可以将视图sys.fulltext_indexes
添加到模型中并使用 EF 使用它。