c# - 有没有办法知道一个 sql server 列是否是通过 EF 索引的全文?

标签 c# sql-server entity-framework

我正在构建一个基于 EF 和 Linq.Expression 的请求生成器。我想知道是否有办法通过 EF 中的某处获取列信息。

我正在寻找有关全文索引的信息,您可以在 SQl Server 的属性窗口中看到它。

有人可以帮忙吗?

有关信息,这是一个 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'

谢谢。

最佳答案

我认为这超出了 Entity Framework 的范围,因为它会在编译时生成实体数据模型。 DBA 可以修改数据库以索引列,而数据模型将无法更新自身以反射(reflect)这一点。此外, Entity Framework 被设计为与数据库无关,并且没有在不同数据库平台之间一致地公开此类元数据的约定。

如果您不介意使用一些 SQL 来弄脏您的手,您总是可以编写一个存储过程来找出这类事情。这个答案:List of all index & index columns in SQL Server DB假设您使用的是 SQL Server,应该会给您一个良好的开端。

关于c# - 有没有办法知道一个 sql server 列是否是通过 EF 索引的全文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10244059/

相关文章:

c# - 在 LINQ 中获取组的第一条记录?

linq - 定义导航属性时列表 vs IEnumerable vs IQueryable

c# - 将字符串值与枚举的字符串值进行比较

c# - 使用数组初始值设定项

c# - Web API 参数调用中出现空引用异常

java - MSSQL 和 Hibernate 的 ID 跳转问题

sql-server - 索引会提高varchar(max)查询性能吗,以及如何创建索引

c# - 优化C#中的空方法调用

c# - DataAdapter.Fill 性能异常

entity-framework - 针对复杂类型属性的 Entity Framework 查询