net framework example .net nhibernate orm fluent-nhibernate

.net - framework - AutoMapping de Nhibernate Fluent-2 claves externas a la misma tabla?



nhibernate vs entity framework (1)

Digamos que estoy haciendo un sistema de transacción básico donde tengo los siguientes objetos.

public class User { public virtual int Id{get; set;} } public class Transaction { public virtual int Id{get; set;} public virtual Item Item {get; set;} public virtual User Seller{get; set;} public virtual User Buyer{get; set;} }

Observe cómo tengo dos relaciones con el objeto Usuario. Cuando FHN genera el esquema de la tabla, obtengo 3 relaciones FK de la tabla de transacciones de vuelta a la tabla Usuario, "Buyer_id", "Seller_id", "User_id"

Creo que está generando automáticamente el campo "User_id" erróneamente en función del hecho de que espera que la propiedad de referencia se llame "Usuario".

¿Cómo puedo especificar esta asignación usando FNH?


Yarg!

Finalmente lo descubrí al hacer el mapeo automático, debes especificar una anulación con dos asignaciones Has Many separadas

return Fluently.Configure() .Database(persistenceConfigurer) .Mappings(m => m.AutoMappings.Add( AutoMap.AssemblyOf<User>() .Override<User>(map=> map.HasMany(user=> user.Transactions).KeyColumn("Buyer_id")) .Override<User>(map => map.HasMany(user => user.Transactions).KeyColumn("Seller_id")) )) .ExposeConfiguration(BuildSchema) .BuildSessionFactory();