我正在使用EF 6 Code First,我不明白为什么没有为我的Model的属性创建一列。
这是第一堂课:
public class Original
{
public int ID { get; set; }
public string Nom { get; private set; }
public Historique Historique { get; private set; }
public Traduction Traduction { get; private set; }
}
这是第二堂课:
public class Traduction
{
public int ID { get; set; }
public Utilisateur Traducteur { get; private set; }
public Original Original { get; private set; }
public string Content { get; private set; }
}
EF不会为Traduction和Original创建FK列。 (Traduction表不包含Original的FK列,反之亦然)但它完美地创建了所有其他列和FK。
我正在使用Fluent API来建立关系。我曾尝试过依赖自动约定,并使用以下方法显式配置关系:
modelBuilder.Entity<Original>().HasRequired(o => o.Traduction).WithRequiredPrincipal(t=>t.Original).WillCascadeOnDelete(true);
但是仍未创建列。
感谢您的帮助
更新
我不知道它是否有用,但我想添加一个信息,我的Dbset在上下文类中定义如下:
public DbSet<Traduction> Traductions { get; set; }
public DbSet<Original> Originaux { get; set; }
“Originaux”如果法语复数为“Originals”。但是我注意到EF创建的表名为“Originals”,并且不遵循DbSet的名称。我不知道,也许这可能是问题的原因。
答案 0 :(得分:0)
正如Dismissile所说,EF不会创建一个额外的列来保存外键,因为它是一对一的关系。这是一种正常的行为,实际上没有任何错误。