我有一个使用Entity Framework 4.1的关系,我的外键是自动生成的,外键的名字有下划线:
public class Setor : Entity
{
public long Id { get; set; }
public string Nome { get; set; }
public virtual Secretaria Secretaria { get; set; }
}
public class Secretaria : Entity
{
public long Id { get; set; }
public string Nome { get; set; }
}
这个生成的外键名为: Secretaria_Id 表 Setor
我想删除此下划线: SecretariaId
有办法做到这一点吗?我更喜欢使用DataAnnotations。
答案 0 :(得分:9)
在Fluent API中,您可以为FK列指定名称:
modelBuilder.Entity<Setor>()
.HasOptional(s => s.Secretaria)
.WithMany()
.Map(a => a.MapKey("SecretariaId"));
我认为DataAnnotations无法做到这一点。或者,您可以将外键公开到模型类中,如下所示:
public class Setor : Entity
{
public long Id { get; set; }
public string Nome { get; set; }
public long? SecretariaId { get; set; }
public virtual Secretaria Secretaria { get; set; }
}
约定会自动识别,因为FK和列名称将是属性的名称,即SecretariaId
。