我正在构建一个基于 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/