Frage

Zum einen möchte ich für mein Englisch nicht meine stärkste Seite entschuldigen.

Auf die Frage. In meinem aktuellen Projekt habe ich Schnittstellen zu meinen Entitäten so dass ich Subsonic Attribute an meinem Kopf entites verwenden kann, und ich möchte in der Lage sein, nahtlos wechseln O / R-Mapper in der Zukunft. Wie auch immer, ich erhalte eine Fehlermeldung, wenn ich versuche, meine Schnittstellen zu verwenden und SimpleRepositorys Klassen wie Single <>, Alle <> und so weiter. Ich weiß, warum ich die Fehlermeldung erhalten, aber ich muss helfen, einen Weg zu finden, sie zu umgehen. Fehlermeldung:

  

System.InvalidCastException. Kann nicht Gussobjekt des Typs 'SubSonic.DomainObjects.User' eingeben 'Core.DomainObjects.IUser'

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

Wie Sie sehen Ich habe make Benutzer versucht, IUser, um zu arbeiten, wenn ich Daten hinzufügen möchten, aber ohne Erfolg. Was kann ich tun, um diese Arbeit zu machen?

Danke,
Timmie

War es hilfreich?

Lösung

Ich glaube nicht, Unterschall ist das Problem in dieser Situation. Dieser Code funktioniert:

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

}

-Code für die aktuelle Klasse:

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

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

Und schließlich die Funktion, die Kunden zu bekommen:

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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top