因此,現在在最新的實體框架6.1測試版中可以使用索引,甚至可以在代碼優先的方法中創建一個等於此SQL語句的索引?實體框架6.1 - 使用INCLUDE語句創建索引
CREATE NONCLUSTERED INDEX [Sample1]
ON [dbo].[Logs] ([SampleId],[Date])
INCLUDE ([Value])
因此,現在在最新的實體框架6.1測試版中可以使用索引,甚至可以在代碼優先的方法中創建一個等於此SQL語句的索引?實體框架6.1 - 使用INCLUDE語句創建索引
CREATE NONCLUSTERED INDEX [Sample1]
ON [dbo].[Logs] ([SampleId],[Date])
INCLUDE ([Value])
嚴格來說,它一直是他們中的Code First遷移可能的,因爲你可以在遷移運行SQL:
public partial class AddIndexes : DbMigration
{
private const string IndexName = "IX_LogSamples";
public override void Up()
{
Sql(String.Format(@"CREATE NONCLUSTERED INDEX [{0}]
ON [dbo].[Logs] ([SampleId],[Date])
INCLUDE ([Value])", IndexName));
}
public override void Down()
{
DropIndex("dbo.Logs", IndexName);
}
}
但我知道你很可能其實是問,如果你能create an index using the IndexAttribute在6.1中引入的,但與一個包含列 - 這個問題的答案是「否」
是Ind exAttribute是我的目標。但看起來我們仍然沒有好東西=) – Gapipro
因爲我沒有EF 6.1安裝在這裏做,我的猜測是,這可能是接近(我假設SampleId和日期是複合主鍵和值是希望包括非鍵列):
public class Logs {
[Key, Column(Order=0), Index("Sample1", 0, IsClusted=false, IsUnique=false]
public int SampleId {get;set;}
[Key, Column(Order=1), Index("Sample1", 1, IsClusted=false, IsUnique=false]
public DateTime Date {get;set;}
[Index("Sample1", 2, IsClusted=false, IsUnique=false]
public string Value {get;set;}
}
但我現在無法測試,所以有人需要驗證。
這將創建索引等於: 創建非聚集索引[樣本1] ON [DBO] [日誌](。 [SampleId],[Date],[Value]) – Gapipro
我想不會.... – ErikEJ