У меня есть эти классы, и мне нужно сопоставить их с отношением 1: 1, но у меня еще нет хороших знаний для свободного API, и я получил эту ошибку во время выполнения (отладка):
"erro 3015: Problema nos fragmentos do mapeamento a partir das linhas 6, 22, 191: Restrição de chave estrangeira 'OperadorModel_OpCadastros1' от tabela OperadorModel (OpCadastros1_OperadorId) для tabela OperadorModel (id):: Mapeamento insuficiente: a chave ser mapeadadeve para algum AssociationSet ou EntitySetsучастники де ума associação де chave estrangeira no lado ceptual."
Что-то типа:
«Ошибка 3015: Проблема в сопоставлении фрагментов из строк 6, 22, 191: ограничение внешнего ключа «OperadorModel_OpCadastros1» таблицы OperadorModel (OpCadastros1_OperadorId) для таблицы OperadorModel (id) :: Недостаточное сопоставление: внешний ключ должен быть сопоставлен для некоторых наборов объектов AssociationSet или участие в ассоциации внешнего ключа в концептуальном».
Как решить эту проблему?
Код ниже. К счастью, и извините за мой плохой английский.
public class OperadorModel
{
public int OperadorId { get; set; }
public string Login { get; set; }
public bool TiraMenu { get; set; }
public virtual OpCadastros1Model OpCadastros1 { get; set; }
}
public class OpCadastros1Model
{
public int OperadorId { get; set; }
public virtual OperadorModel Operador { get; set; }
#region Apoio
[Column("cad_apoio_ac")]
[Display(Description = "Acessar", GroupName = "Cadastros", Name = "Laboratórios de Apoio")]
public bool AcApoio { get; set; }
[Column("cad_apoio_ad")]
[Display(Description = "Adicionar", GroupName = "Cadastros", Name = "Laboratórios de Apoio")]
public bool AdApoio { get; set; }
[Column("cad_apoio_md")]
[Display(Description = "Modificar", GroupName = "Cadastros", Name = "Laboratórios de Apoio")]
public bool MdApoio { get; set; }
[Column("cad_apoio_co")]
[Display(Description = "Consultar", GroupName = "Cadastros", Name = "Laboratórios de Apoio")]
public bool CoApoio { get; set; }
[Column("cad_apoio_ex")]
[Display(Description = "Excluir", GroupName = "Cadastros", Name = "Laboratórios de Apoio")]
public bool ExApoio { get; set; }
#endregion
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<OperadorModel>()
.HasKey(op => op.OperadorId);
modelBuilder.Entity<OpCadastros1Model>()
.HasKey(cad => cad.OperadorId)
.HasRequired(cad => cad.Operador)
.WithRequiredPrincipal(cad => cad.OpCadastros1);
modelBuilder.Entity<OperadorModel>().ToTable("operador", "public");
modelBuilder.Entity<OpCadastros1Model>().ToTable("operador", "public");
}