2010-06-02 8 views
1
Orders Table 

Id(x => x.ID, "ID"); 
... 
HasMany<OrdersLineItems>(x => x.LineItems).KeyColumn("ID").Inverse().Cascade.All(); 

OrdersLineItems Table 

Id(x => x.ID, "ID"); 
... 
References(x => x.Orders, "OrdersID").ForeignKey("ID"); 

J'essaie de configurer un mappage où l'ID de la table Orders est référencé dans OrdersID dans OrdersLineItemsTable.Problèmes courants de mappage NHibernate

Le problème que je rencontre est quand je fais: order.LineItems.Add (lineItem); dans mon code, j'obtiens une erreur SQL indiquant:

Impossible d'insérer la valeur NULL dans la colonne 'OrdersID', table 'MyDatabase.dbo.OrdersLineItems'; La colonne n'autorise pas les valeurs NULL. INSERT échoue. La déclaration a été terminée.

J'ai surveillé les requêtes SQL en cours d'exécution et je peux voir que l'enregistrement Orders est d'abord créé et qu'il est bombardé lors de la tentative de création de l'enregistrement OrdersLineItems.

Des suggestions? Merci d'avance.

Répondre

1

Ma suggestion serait d'utiliser une clé étrangère dans le KeyColum de hasMany au lieu de la clé primaire des OrdersLineItems:

hasMany (x => x.LineItems) .KeyColumn (» FK_Orders ") .Inverse(). Cascade.All();

+0

Merci. Ça a marché. –