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
-~----------~----~----~----~------~----~------~--~---

Reply via email to