NHibernate mappage d'une entité sans clé primaire

Mon Entité n'a pas de clé primaire pour certaines raisons:

public partial class VehicleLocation
{
    public virtual string UserCode { get; set; }
    public virtual string DateTime { get; set; }
    public virtual string Device { get; set; }
    public virtual string Gps { get; set; }
    public virtual string GpsDateTime { get; set; }
    public virtual double Speed { get; set; }
}

La cartographie:

class VehicleLoactionMap : ClassMap<VehicleLocation> 
{
    public VehicleLoactionMap()
    {
        Table("VEHICLE_LOCATION");
        LazyLoad();
        Map(x => x.UserCode).Column("USER_CODE");
        Map(x => x.DateTime).Column("DATE_TIME");
        Map(x => x.Device).Column("DEVICE");
        Map(x => x.Gps).Column("GPS");
        Map(x => x.GpsDateTime).Column("GPS_DATE_TIME");
        Map(x => x.Speed).Column("SPEED");
    }
}

J'ai eu cette erreur:

L'entité "VehicleLocation' n'a pas un Id mappé...

Comment puis-je carte mon entité sans l'aide d'une clé primaire?

Quelle est la raison pour n'avoir pas PK? Si c'est simplement un cas de schémas de base de données que vous ne pouvez pas changer, alors vous aurez à regarder des clés composites (bien que cela va rendre les choses difficiles). Mais sinon, je ne vois pas une bonne raison pour ne pas avoir un PK, même si c'est seulement une clé de substitution. Mettre dans, votre NHibernate problème disparaît.
Travailler avec un pré-définis db schéma que je ne peux pas changer. Je ne peux pas ajouter/supprimer des clés/des champs.. dans ma db est cette table sans un PK et je suis en train de la carte comme vous pouvez le voir ci-dessus dans mon exemple de code.
Hélas, c'est une déception 🙁 j'irais avec la clé composite approches proposées ci-dessous, puis.
En effet, je suis en utilisant compo clés maintenant ça fonctionne. Merci à tous

OriginalL'auteur Stacked | 2013-04-04