SubSonic, SimpleRepository e interfaces entidad
-
20-09-2019 - |
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
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;
}