2008-12-08 10 views
1

Je travaille sur un projet qui est utilisé pour entrer des informations sur un produit dans un document. Une section a un formulaire qui peut être rempli autant de fois que nécessaire pour un produit particulier. Les informations sur ce formulaire sont ensuite disponibles pour être partagées sur plusieurs documents connexes. Une situation type many-to-many. La différence est, sur la table intermédiaire, je veux stocker des informations spécifiques pour cette entrée de formulaire pour ce document spécifique.Utilisation de données supplémentaires sur une table intermédiaire avec NHibernate

Voici quelques définitions de table pour illustrer le point:

Document(
    Id int identity(1,1), 
    Name nvarchar(256) 
) 

Form(
    Id int identity(1,1), 
    FormData nvarchar(max) 
) 

DocumentForms(
    DocumentId int, 
    FormId int, 
    DocumentFormNumber varchar(64) 
) 

Et certaines classes:

public class Document{ 
    public int Id { get; protected set; } 
    protected IList<Form> Forms { get; set; } 
} 

public class Form { 
    public int Id { get; protected set; } 
    public string DocumentFormNumber { get; set; } 
    public string FormData { get; set; } 
} 

Est-il un moyen de créer un mappage qui prend en charge la lecture des données supplémentaires lors de la lecture formulaires partie de la relation de plusieurs à plusieurs avec Document? Ai-je besoin d'utiliser une procédure stockée lors du chargement de données avec la relation many to many? Je dois toujours être en mesure de charger les objets Form sans les faire partie d'un document, mais une fois qu'ils sont ajoutés au document, j'ai besoin qu'ils aient un nombre qui est généré basé sur des règles simples. Mais ce nombre est évidemment spécifique au document. Ainsi, alors que le document suivant peut utiliser les mêmes données de formulaire, il a besoin d'un nouveau numéro.

Des suggestions sur comment cela peut être réalisé?

Répondre

3

J'ai trouvé ma réponse dans un article de Billy McCafferty here.

Questions connexes