Pregunta

En primer lugar, quiero disculparme por mi Inglés, no es mi punto más fuerte.

A la pregunta. En mi proyecto actual, tengo mis interfaces a las entidades para que pueda utilizar atributos subsónicos a mis ENTIDADES cabeza y quiero ser capaz de cambiar sin problemas O / R asignador en el futuro. De todos modos, me sale un error cuando trato de usar mis interfaces y clases SimpleRepositorys como single <>, Todos los <> y así sucesivamente. Yo sé por qué me sale el mensaje de error pero necesito ayuda para encontrar una manera de conseguir alrededor de él. Mensaje de error:

  

System.InvalidCastException:. No se puede convertir objeto de tipo 'SubSonic.DomainObjects.User' al tipo 'Core.DomainObjects.IUser'

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

Como se puede ver que he tratado de hacer del usuario a fin IUser a trabajar cuando quiero agregar datos, pero sin éxito. ¿Qué puedo hacer para hacer este trabajo?

Gracias,
Timmie

¿Fue útil?

Solución

No creo subsónica es el problema en esta situación. Este código funcionará:

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

}

Código para la clase real:

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

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

Y, por último, la función de conseguir el 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top