You have to create the TransactionGroupUser object explicitly. -Markus
2009/8/3 William Chang <[email protected]> > > I'm having trouble with using many-to-many relation, > "HasAndBelongsToMany" attribute. I read the section titled > "Association table with surrogate key" in the documentation and does > not extend on using with "Create()": > > http://www.castleproject.org/activerecord/documentation/trunk/usersguide/relations/hasandbelongs.html > > I do not know if I should create the object from the association table > or not? I tried creating an object from one of the foreign tables, but > I got an error: > > ----> NHibernate.Exceptions.GenericADOException : could not insert > collection: > > [Testsoft.Data.Models.Transaction.transactionGroups#43fc1ed4-3919-4d12-989b-9c590167bb15] > [SQL: INSERT INTO TransactionsGroupsUsers (entityTransactionId, > entityGroupId) VALUES (?p0, ?p1)] > ----> MySql.Data.MySqlClient.MySqlException : Duplicate entry '' for > key 1 > > About my association table, I have three tables connecting to it by > foreign key: Transactions, Groups, and Users. I found that the > surrogate key is not being generating by ActiveRecord when using > "Create()" method. The surrogate key column ends up being blank after > INSERT. > > Test Code Snippet: > IList<Data.Models.Group> gs1 = new List<Data.Models.Group>(); > gs1.Add(g1); > > IList<Data.Models.User> us1 = new List<Data.Models.User>(); > us1.Add(u1); > > Models.Transaction t1 = new Models.Transaction() { > transactionType = > Testsoft.Data.Models.Transaction.enumType.Requisition, > transactionCreator = requisition.requisitionCreator, > transactionRequisition = requisition, > transactionGroups = gs1, > transactionUsers = us1, > transactionDateCreated = DateTime.Now > }; > > t1.Create(); > > Source Code Snippet: > public class TransactionGroupUser : > ActiveRecordBase<TransactionGroupUser> { > [PrimaryKey(PrimaryKeyType.GuidComb)] > public virtual Guid entityId {get;set;} > [BelongsTo("entityTransactionId")] > public virtual Transaction entityTransaction {get;set;} > [BelongsTo("entityGroupId")] > public virtual Group entityGroup {get;set;} > [BelongsTo("entityUserId")] > public virtual User entityUser {get;set;} > } > > Specs: > Microsoft ASPNET 3.5 > MySQL 5.0.24a > MySQL Connector/Net 6.1.0 > NHibernate 2.1.0GA > Castle ActiveRecord 2.0 > > Please help? > > Thank you, > William Chang > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en -~----------~----~----~----~------~----~------~--~---
