我正在使用Code First生成我的数据库。我还将使用全文本搜索。但是,由于EF给出的主键索引名称是随机的,因此我无法以编程方式创建全文本索引。是否有一种方法可以明确设置这个索引名称呢?
例如,我有一个以下的Items类:
现在我想让EF为Tags属性创建一个全文目录,所以我会使用DbContext.SqlCommand()方法调用类似于以下内容的语句。
例如,我有一个以下的Items类:
public class Item
{
public string ItemId { get; set; }
public string ShortName { get; set; }
public decimal Price { get; set; }
public string Description { get; set; }
public string ImageUri { get; set; }
public string Tags { get; set; }
public int CategoryId { get; set; }
public string LastModifiedBy { get; set; }
public virtual User LastModifiedBy { get; set; }
public virtual ItemCategory Category { get; set; }
public virtual ICollection<ItemMetaDataValue> MetaData{get;set;}
public virtual ICollection<PriceHistoryLog> PriceHistory { get; set; }
}
现在我想让EF为Tags属性创建一个全文目录,所以我会使用DbContext.SqlCommand()方法调用类似于以下内容的语句。
CREATE FULLTEXT CATALOG [DEFAULT]WITH ACCENT_SENSITIVITY = OFF
AS DEFAULT
AUTHORIZATION [dbo]
CREATE FULLTEXT INDEX ON [dbo].[Items] KEY INDEX [PK__Items__727E838B07020F21] ON ([DEFAULT]) WITH (CHANGE_TRACKING AUTO)
ALTER FULLTEXT INDEX ON [dbo].[Items] ADD ([Tags])
ALTER FULLTEXT INDEX ON [dbo].[Items] ENABLE
然而,你可能会注意到,主键索引名称不是我所期望的那个:PK_Items_727E838B07020F21。是否有任何方法可以显式指定此键?
谢谢。