Domanda

In primo luogo, voglio scusarmi per il mio inglese, non è il mio lato più forte.

Per la domanda. Nel mio progetto attuale, ho interfacce per i miei soggetti in modo da poter utilizzare gli attributi Subsonic ai miei entités testa e voglio essere in grado di passare senza soluzione di continuità O / R mapper in futuro. Ad ogni modo, ottengo un errore quando provo ad usare i miei interfacce e classi SimpleRepositorys come singolo <>, Tutto <> e così via. Io so perché ricevo il messaggio di errore, ma ho bisogno di aiuto per trovare un modo per aggirare l'ostacolo. Messaggio di errore:

  

System.InvalidCastException:. Impossibile eseguire il cast oggetto di tipo 'SubSonic.DomainObjects.User' digitare 'Core.DomainObjects.IUser'

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

Come si può vedere che ho cercato di rendere l'utente a fine IUSER a lavorare quando voglio aggiungere i dati, ma senza successo. Cosa posso fare per fare questo lavoro?

Grazie,
Timmie

È stato utile?

Soluzione

Non credo subsonico è il problema in questa situazione. Questo codice funziona:

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

}

Codice per la classe attuale:

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

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

E, infine, la funzione per ottenere il 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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top