Pregunta

Es la primera vez que utilizo primera mezcla.

Vamos a decir que tengo esas clases:

public class Store
{
    public int Id { get; set; }
    public String Name { get; set; }
}

public class Employee
{
    public int Id { get; set; }
    public String Name { get; set; }
}

Un empleado se relaciona con una tienda con fecha está contratado. Esto significa que en la base de datos voy a tener una mesa de centro con StoreID, EmployeeId, StartDate, EndDate

ACTUALIZACIÓN

Un empleado puede trabajar a la TiendaA de 2009-01-01 a 2009-04-04 y trabajar por TiendaB desde 2009-04-05 a ... Y no quiero que mi tabla de datos repetir toda la información de mi empleado cada vez que un empleado cambie la tienda que trabajar. En este ejemplo, los empleados sólo tienen un nombre, pero digamos que un empleado tiene 10 propiedad (dirección, edad, sexo ...)

¿Cómo podría lograr eso?

¿Fue útil?

Solución

Basado en su comentario y la pregunta actualizado parece que quiere algo como lo siguiente:

public class Store
{
    public int Id { get; set; }
    public String Name { get; set; }
}

public class StoreEmployee
{
    public int Id { get; set; }
    public Employee Employee { get; set; }
    public Store Store { get; set; }
    public DateTime HiredDate { get; set; }
}

public class Employee
{
    public int Id { get; set; }
    public String Name { get; set; }
}

Otros consejos

Usted realmente necesita una relación de muchos a muchos que se unirá a un registro de empleado a un Record Store, con una carga útil de fechas de inicio y fin.

Los objetos se vería así:

public class Store
{
    public int Id { get; set; }
    public String Name { get; set; }
}

public class Employee
{
    public int Id { get; set; }
    public String Name { get; set; }
    public IList<EmploymentTerm> EmploymentTerms { get; set; }
}

public class EmploymentTerm
{
    public int Id { get; set; }
    public Store Store { get; set; }
    public Employee Employee { get; set; }
    public DateTime? StartDate { get; set; }
    public DateTime? EndDate { get; set; }
}

¿Esta mano alzada por lo que podría ser un par de errores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top