Array
(
)

Relacionamento one to many DUPLO - Fluet AP

Bruno Costa
   - 05 fev 2015

Tarde.
Tenho uma Classe Time:
#Código

 public class Time
    {
        public int TimeId { get; set; }
        public string Nome { get; set; }
        public virtual ICollection<Rodada> Rodadas { get; set; }
        public Time()
        {
            Rodadas = new List<Rodada>();
        }
    }

E uma classe Rodada:
#Código
 public class Rodada
    {
        public int RodadId { get; set; }
        public virtual Time Mandante { get; set; }
        public int MandanteId { get; set; }
        public virtual Time Visitante { get; set; }
        public int VisitanteId { get; set; }
        public DateTime DataHora { get; set; }
        public int? GolsMandante { get; set; }
        public int? GolsVisitante { get; set; }
        public DateTime LimiteApostas { get; set; }
        public virtual ICollection<Aposta> Apostas { get; set; }

        public int Vencedor()
        {
            if (GolsMandante.Value > GolsVisitante.Value)
            {
                return GolsMandante.Value;
            }
            else
            {
                return GolsVisitante.Value;
            }
                        
        }
        public bool IsEmpate()
        {
            return GolsMandante.Value == GolsVisitante.Value;
        }

        public Rodada()
        {
            Apostas = new List<Aposta>();
        }

A Rodada se relaciona duas vezes com Time(Mandante e Visitante).
Fiz o mapeamento da seguinte forma:
#Código
 modelBuilder.Entity<Rodada>()
                .HasRequired<Time>(r => r.Mandante)
                .WithMany(t => t.Rodadas)
                .HasForeignKey(r => r.MandanteId);

            modelBuilder.Entity<Rodada>()
                .HasRequired<Time>(r => r.Visitante)
                .WithMany(t => t.Rodadas)
                .HasForeignKey(r => r.VisitanteId);

Porém, lança exceção:
System.Data.Entity.Core.MetadataException: Schema specified is not valid. Errors: The relationship 'Intranet.Infra.Data.Context.Rodada_Mandante' was not loaded because the type 'Intranet.Infra.Data.Context.Time' is not available.
Idéias?
Obrigado

Jothaz
   - 05 fev 2015

Aparentemente não esta achando ''Intranet.Infra.Data.Context.Time'' is not available.

Sem ver a arquitetura do projeto fica impossível sugerir algo.

Você colocou as referências corretamente?

Você uso using nos namespaces?

Bruno Costa
   - 05 fev 2015

Sim,

Tenho outros projetos dentro dessa Solution que usam a mesma arquitetura.

O mapeamento que fiz está correto?