Relacionamento one to many DUPLO - Fluet AP

05/02/2015

Tarde.

Tenho uma Classe Time:
 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:
 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:

 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

Bruno Costa

Respostas

05/02/2015

Jothaz

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?
Responder Citar

05/02/2015

Bruno Costa

Sim,

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

O mapeamento que fiz está correto?
Responder Citar