Any utilisant nHibernate avec un objet Domain & Objet DTO implémenté à partir d'une interface commune? J'essaye de séparer tous mes attributs de nHibernate dans l'objet de domaine, laissant mes DTO et interface propres.nHibernate (avec Castle ActiveRecord) avec des interfaces C# (spécialement pour les DTO)
Le problème vient des erreurs de lancement de nHibernate lorsqu'il essaie d'associer les interfaces aux classes concrètes.
NHibernate.MappingException: références Association classe unmapped: IContact
Je comprends pourquoi sa plainte sur l'utilisation de l'interface non-hiberné, mais je me bats pour un moyen visuel de restructurer autour d'elle. Une reproduction squelette de mon code est présentée ci-dessous, des idées pour mieux structurer mon code?
public interface ICompany
{
IList<IContact> Contacts { get; set; }
}
public class CompanyDTO : ICompany
{
private IList<IContact> contacts;
public IList<IContact> Contacts { get { return this.contacts; } set { this.contacts = value; } }
}
[ActiveRecord]
public class Company : ActiveRecordBase<Company>, ICompany
{
private IList<IContact> contacts;
[HasMany(Inverse=true, Table="Contact", ColumnKey="CompanyId")]
[ScriptIgnore]
public IList<IContact> Contacts { get { return this.contacts; } set { this.contacts = value; } }
}
Edit:
Je veux avoir une interface commune pour que je puisse assurer qu'ils gardent les mêmes champs (.-À-dire se penchant sur le compilateur pour les garder en accord). Il me permet également d'utiliser les DTO dans la partie de vue de mon application, mais les jette aux objets de domaine pour l'accès d'affaires et de données. En outre, la solution d'alex ne fonctionne pas car les contacts ICompany sont de type IList, pas IList. Je voudrais le garder comme IContact pour que mon objet DTO n'ait aucune connaissance de l'objet Contact Domain.
Hej, savez-vous aussi comment faire avec Fluent? :) – asgerhallas
+1 Merci beaucoup – IamStalker