Interfaces subsônicas, simples e flegepositivas e de entidade
-
20-09-2019 - |
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
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;
}