SubSonic múltipla chave coluna primária

votos
2

temos certas mesas onde temos várias colunas que juntos formam a chave primária. Quando SubSonic gera tudo que é classes para nossas mesas para as tabelas com várias colunas ainda existem métodos, como FetchByID, que apenas usar um valor para a chave primária.

Devido a isso a propriedade de chave estrangeira irá retornar os itens errados. Por exemplo, temos uma tabela de produtos que tem uma chave primária de várias colunas. Uma classe com uma relação a tabela de produtos terá uma propriedade do produto com o método get como: Product.FetchByID (this.SalesOrganisationID). Este deve ser Product.FetchByID (this.SalesOrganisationID, this.ProductID).

Alguém tem algum conselho para me sobre o que eu deveria fazer para tornar o trabalho SubSonic com estes tipos de chaves primárias?

Publicado 19/05/2009 em 17:21
fonte usuário
Em outras línguas...                            


2 respostas

votos
2

Você poderia expandir sua classe Product ter um método que utiliza um Select para encontrar o produto por ele é id composto, por exemplo:

public partial class Product{
  public static Product FetchByCompositeId(int salesOrganisationId, int productId){
    return DB.Select().From<Product>()
      .Where(Product.Columns.SalesOrganisationId).IsEqualTo(salesOrganisationId)
      .And(Product.Columns.ProductId).IsEqualTo(productId)
      .ExecuteSingle<Product>();
  }
}
Respondeu 19/05/2009 em 18:44
fonte usuário

votos
1

Você terá que obtê-lo usando o Query ou SQLQuery (SubSonic.Select). Você pode adicionar o método na classe parcial do objeto que você está adicionando essa funcionalidade, de modo a encapsular os detalhes da realização da operação.

Respondeu 19/05/2009 em 17:58
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more