首先使用EF代码4.3我正在尝试使用必需的关系和必需的可选关系来建模对象树。
以下是这些类的简单表示
public class Top
{
public int Id { get; set; }
public virtual Middle Middle { get; set; }
}
public class Middle
{
public int Id { get; set; }
public virtual Child Child { get; set; }
}
public class Child
{
public int Id { get; set; }
}
这是OnModelCreating代码
modelBuilder.Entity<Top>().HasRequired(t => t.Middle).WithRequiredPrincipal().WillCascadeOnDelete();
modelBuilder.Entity<Middle>().HasRequired(t => t.Child).WithOptional().WillCascadeOnDelete();
这会在SQLCE上产生错误“指定的索引已存在。[IX_Id]”
检查数据库模式后,两个模型绑定器流畅的API配置行都在表Middles上创建索引IX_Id。
有谁知道如何解决这个问题?
有没有办法设置索引名称?
谢谢! 帕斯卡
答案 0 :(得分:0)
使用此代码;
public class Top
{
public int Id { get; set; }
public int MiddleId { get; set; }
[ForeignKey("MiddleId")]
public virtual Middle Middle { get; set; }
}
public class Middle
{
public int Id { get; set; }
public int ChildId { get; set; }
[ForeignKey("ChildId")]
public virtual Child Child { get; set; }
}
public class Child
{
public int Id { get; set; }
}