Pergunta

É a primeira vez que eu uso Subsonic.

Vamos dizer que eu tenho essas classes:

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; }
}

Um funcionário está relacionado a uma loja com é data contratada. Isto significa que no banco de dados I terá uma mesa meio Com storeId, EmployeeId, StartDate, EndDate

Atualização

Um empregado pode trabalhar para o StoreA de 2009-01-01 a 2009-04-04 e trabalhar para StoreB de 2009-04-05 a ... E eu não quero que a minha tabela de dados repetir todas as informações do meu empregado cada vez que um funcionário mudar a loja que ele trabalha. Neste exemplo empregado tem apenas um nome, mas vamos dizer que um empregado tem 10 propriedades (endereço, idade, sexo ...)

Como eu poderia conseguir isso?

Foi útil?

Solução

Com base no seu comentário e a questão atualizados parece que você quer algo como o seguinte:

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; }
}

Outras dicas

Você realmente precisa de um relacionamento muitos-para-muitos, que irá juntar-se um registro de funcionário de uma loja de discos, com uma carga de Início e Fim datas.

Os objetos será parecido com este:

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; }
}

Essa mão livre para que houvesse um par de erros.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top