Структура сущностей группы отношения один ко многим - PullRequest
0 голосов
/ 28 сентября 2018

Серьезно, я не знаю, как это правильно выразить.

У меня есть 2 модели:

    public class ProfesorCursoMateriaPeriodo
{
    public int Id { get; set; }
    public int ProfesorId { get; set; }
    public int CursoId { get; set; }
    public int MateriaId { get; set; }
    /// <summary>
    /// Referencia a la columna de Grupo en GrupoPeriodo
    /// </summary>
    public int Grupo { get; set; }

    [ForeignKey("ProfesorId")]
    public virtual Profesor Profesor { get; set; }

    [ForeignKey("Grupo")]
    public virtual List<GrupoPeriodo> GrupoPeriodo { get; set; }
    [ForeignKey("CursoId")]
    public virtual Curso Curso { get; set; }

    [ForeignKey("MateriaId")]
    public virtual Materia Materia { get; set; }
}



public class GrupoPeriodo
    {
        public int Id { get; set; }
        public int PeriodoId { get; set; }
        public int Grupo { get; set; }

        [ForeignKey("PeriodoId")]
        public virtual Periodo Periodo { get; set; }

    }

Я хочу из ProfesorCursoMateriaPeriodo использовать свойство Grupo для извлечения всех значений из GrupoPeriodo, которые содержат те же значения, что и Grupo столбец из последнего (GrupoPeriodo).

Пример:

   var grupoPeriodo = new GrupoPeriodo[]
    {
        new GrupoPeriodo
        {
            Id = 1,
            PeriodoId = 1,
            Grupo = 1,

        },
        new GrupoPeriodo
        {
            Id = 2,
            PeriodoId = 2,
            Grupo = 1,
        },
        new GrupoPeriodo
        {
            Id = 3,
            PeriodoId = 3,
            Grupo = 1,
        },
        new GrupoPeriodo
        {
            Id = 4,
            PeriodoId = 4,
            Grupo = 1,

        },
    };

Я хочу, чтобы, когда у меня было:

new ProfesorCursoMateriaPeriodo {Id = 1, CursoId = 1, Grupo = 1, MateriaId = 1,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 2, CursoId = 2, Grupo = 1, MateriaId = 1,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 3, CursoId = 3, Grupo = 1, MateriaId = 1,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 4, CursoId = 4, Grupo = 1, MateriaId = 1,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 5, CursoId = 5, Grupo = 1, MateriaId = 1,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 6, CursoId = 6, Grupo = 1, MateriaId = 1,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 7, CursoId = 7, Grupo = 1, MateriaId = 1,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 8, CursoId = 1, Grupo = 1, MateriaId = 2,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 9, CursoId = 2, Grupo = 1, MateriaId = 2,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 10, CursoId = 3, Grupo = 1, MateriaId = 2,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 11, CursoId = 4, Grupo = 1, MateriaId = 2,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 12, CursoId = 5, Grupo = 1, MateriaId = 2,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 13, CursoId = 6, Grupo = 1, MateriaId = 2,  ProfesorId = 1},
                new ProfesorCursoMateriaPeriodo {Id = 14, CursoId = 7, Grupo = 1, MateriaId = 2,  ProfesorId = 1},

Все вышеперечисленное указывает на одну и ту же "Группу" из GrupoPeriodo.

Возможно ли это вообще?Я хочу сделать это без явного определения внешнего ключа в форме ProfesorCursoMateriaPeriodoId в GrupoPeriodo.

...