Pergunta

Em primeiro lugar, quero me desculpar pelo meu inglês, não pelo meu lado mais forte.

Para a pergunta. No meu projeto atual, tenho interfaces em minhas entidades para que eu possa usar atributos subsônicos na minha cabeça e quero poder alternar perfeitamente o mapeador O/R no futuro. De qualquer forma, recebo um erro quando tento usar minhas interfaces e classes FleleRePositorys, como um único <>, tudo <> e assim por diante. Eu sei por que recebo a mensagem de erro, mas preciso de ajuda para encontrar uma maneira de contornar isso. Mensagem de erro:

System.InValidCastException: Não é possível fundir o objeto do tipo 'subsônico.DomainObjects.User' para digitar 'core.DomainObjects.iusher'.

Código:
public IUser FindById(int id) {
var user = _repository.Single<User>(x => x.Id == id);
return (IUser)user;
}

Como você pode ver, tentei fazer o usuário para o Iuser Order para funcionar quando quiser adicionar dados, mas sem sucesso. O que posso fazer para fazer isso funcionar?

Obrigada,
Timmie

Foi útil?

Solução

Não acho que o Subsônico seja o problema nessa situação. Este código funcionará:

namespace Core.Objects
{
    public interface ICustomer
    {
        int CustomerID { get; set; }
        string Name { get; set; }
    }

}

Código para a classe real:

namespace Business.Entities
{
        public class Customer: Core.Objects.ICustomer
        {
            public int CustomerID { get; set; }

            [SubSonicStringLength(50)]
            public string Name { get; set; }
        }
}

E, finalmente, a função de obter o cliente:

private static ICustomer CustomerByID(int id)
{
      var repos = new SimpleRepository("Test", SimpleRepositoryOptions.None);
      var customer = repos.Single<Customer>(c => c.CustomerID == id);

      return (ICustomer) customer;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top