我知道如何在 C# 中创建常见的多列索引,它是数据库中的映射表。
但我在多列索引上遇到一个具体问题,代码如下:
public class Table1
{
[Index("MultipleIndexColumn",1)]
public Table2 Table2_ID {get; set;}
[Index("MultipleIndexColumn",2)]
public Table3 Table3_ID {get; set;}
[Index("MultipleIndexColumn",3)]
public DateTime CreateDateTime {get; set;}
}
EF6 将生成如下 t-sql:
create index MultipleIndexColumn on Table1(CreateDateTime)
这不是预期的sql语句。
这是我的预期:create index MultipleIndexColumn on Table1(Table2_ID,Table3_ID,CreateDateTime)
你们能帮忙解决这个问题吗?
您可以创建index keys
only on Primitive Datatypes
.所以尝试如下所示。
public class Table1
{
[ForeignKey("Table2_ID")]
public virtual Table2 Table2 { get; set; }
[Index("MultipleIndexColumn",1)]
public int Table2_ID { get; set; }
[ForeignKey("Table3_ID")]
public virtual Table3 Table3 { get; set; }
[Index("MultipleIndexColumn",2)]
public int Table3_ID { get; set; }
[Index("MultipleIndexColumn",3)]
public DateTime CreateDateTime {get; set;}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)