Je suis nouveau sur NHibernate et C#, alors soyez gentil!Erreur dans le mappage un-à-plusieurs avec NHibernate
je les deux entités NHibernate suivantes:
public class Client : IEntity
{
public virtual int Id { get; set; }
public virtual IList<Residence> Residences { get; set; }
}
Et
public class Residence : IEntity
{
public virtual int Id { get; set; }
public virtual int ClientId { get; set; }
public virtual Client Client { get; set; }
}
et ils ont un-à-plusieurs de clients Residence (chaque client peut avoir sa résidence multiple dans leur record).
ont cette correspondances avec l'utilisation AutoMapping
public void Override(AutoMapping<Client> mapping)
{
mapping.Id(c => c.Id).GeneratedBy.Native();
mapping.HasMany(c => c.Residences).KeyColumn("Id").Inverse().Cascade.All();
mapping.Table("Clients");
}
et
public void Override(AutoMapping<Residence> mapping)
{
mapping.Id(p => p.Id);
mapping.References(x => x.Client).Column("Id").Not.Nullable().Cascade.All();
mapping.Table("Residences");
}
Dans mon contrôleur appel IRepository du client:
ClientModel newClient = ClientModel;
Client DomainModel = AutoMapper.Mapper.Map(newClient, new Client());
_clientService.Create(DomainModel);
Repository:
public class ClientService : IClientService
{
private readonly IRepository<Client> _clientRepository;
public void Create(Client client)
{
_clientRepository.Create(client);
}
}
J'ai un problème avec l'utilisation de clé étrangère au client.
Cette erreur: NHibernate.PropertyValueException: propriété non-nulle référence à une valeur nulle ou transitoire ProjectBase.Domain.Entities.Residence.Client
Je pense que cela est parce que vous essayez d'utiliser le client Id ForeignKey qui n'est pas encore ajouté à la table Client. Mais je ne sais pas comment le résoudre. J'ai besoin d'aide pour résoudre cette erreur. Remercier!
Est-ce que le 'client' que vous persistez a des' résidences '? Quelque part, NH a une «résidence» dans son unité de travail qu'il essaye de sauver mais il a un «client» nul. –
oui, j'ai 1 ou plusieurs résidence dans le client quand il donne l'erreur. –
Est-ce que la propriété 'Client' est affectée à la (aux) résidence (s) au client parent? –