No guarantees, but most likely, yes.
-Markus

2009/10/16 Eduard Kruger <[email protected]>

>
> I'm not the architect of the app, so I'll have to discuss that with my
> manager. I agree with your view, this increment thing brings back too
> many bad memories anyway..
>
> But, staying on point, will this solve my problem?
>
> Thank you,
>
> Regards,
>
> On Oct 15, 8:09 pm, Markus Zywitza <[email protected]> wrote:
> > Don't use PrimaryKeyType.Increment. This ID generator counts only
> locally,
> > thus creating always 1 if you don't use a SessionScope.
> > However, PrimaryKeyType.Increment is always an invitation to disaster.
> Omit
> > the primary key type to use SQL Server's IDENTITY feature. You might also
> > use a GUID PK instead, then  using PrimaryKeyType.GuidComb.
> >
> > -Markus
> >
> > 2009/10/15 Eduard Kruger <[email protected]>
> >
> >
> >
> >
> >
> > > Hi all,
> >
> > > I have these 2 classes in a C# 3.5 WCSF Web Application
> >
> > > [
> >
> > > ActiveRecord(Lazy=true)][Serializable
> > > ]
> >
> > > public class Class1: AuditableBase,
> > > iClass1
> >
> > > {
> >
> > > [
> >
> > > PrimaryKey(Generator = PrimaryKeyType
> > > .Increment)]
> >
> > > public virtual int Id { get; set
> > > ; }
> >
> > > [
> >
> > > Property
> > > ]
> >
> > > public virtual string Name { get; set
> > > ; }
> >
> > > [
> >
> > > BelongsTo("QuestionnaireProfileVersionId", Type = typeof
> > > (QuestionnaireProfileVersion), Cascade = CascadeEnum
> > > .All)]
> >
> > > public virtual iQuestionnaireProfileVersion QuestionnaireProfile
> > > { get; set
> > > ; }
> >
> > > [
> >
> > > Property
> > > ]
> >
> > > public virtual TimeSpan TimeLimit { get; set
> > > ; }
> >
> > > [
> >
> > > Property
> > > ]
> >
> > > public virtual bool isChangeLimited { get; set
> > > ; }
> >
> > > [
> >
> > > Property
> > > ]
> >
> > > public virtual int RemainingChanges { get; set
> > > ; }
> >
> > > [
> >
> > > Property
> > > ]
> >
> > > public virtual bool LimitInternetUserOnly { get; set
> > > ; }
> >
> > > [
> >
> > > Property(ColumnType = "BinaryBlob", SqlType="varbinary(max)"
> > > )]
> >
> > > public virtual byte[] BannerImage { get; set
> > > ; }
> >
> > > [
> >
> > > Property
> > > ]
> >
> > > public virtual string BannerImageType { get; set
> > > ; }
> >
> > > [
> >
> > > Property
> > > ]
> >
> > > public virtual string TermsConditions { get; set
> > > ; }
> >
> > > [
> >
> > > HasMany(typeof(User), Cascade = ManyRelationCascadeEnum
> > > .All)]
> >
> > > public virtual IList<iUser> Users { get; set
> > > ; }
> >
> > > [
> >
> > > HasAndBelongsToMany(typeof(Domain), Table = "CedantDomain", ColumnKey
> > > = "CedantId", ColumnRef = "DomainId", Cascade =
> > > ManyRelationCascadeEnum
> > > .All)]
> >
> > > public virtual IList<iDomain> TrustedDomains { get; set
> > > ; }
> >
> > > [
> >
> > > HasMany(typeof(CedantProduct), Cascade = ManyRelationCascadeEnum
> > > .All)]
> >
> > > public virtual IList<iCedantProduct> Products { get; set
> > > ; }
> >
> > > [
> >
> > > HasMany(typeof(CedantMandatoryField), Cascade =
> > > ManyRelationCascadeEnum
> > > .All)]
> >
> > > public virtual IList<iCedantMandatoryField> MandatoryField { get; set
> > > ; }
> >
> > > [
> >
> > > HasAndBelongsToMany(typeof(Class2), Table = "Table3", ColumnKey =
> > > "Class1Id", ColumnRef = "Class2Id", Cascade = ManyRelationCascadeEnum
> > > .All)]
> >
> > > public virtual IList<IClass2> Class2Items { get; set
> > > ; }
> >
> > > The Outcome Group property is the one who is causing the problems, the
> > > OutcomeGroup itself to follow soon:
> >
> > > public class Class2: AuditableBase, IClass2 {
> >
> > > /// <summary>
> >
> > > /// Default class constructor.
> >
> > > /// </summary>
> >
> > > public OutcomeGroup()
> >
> > > {
> >
> > > }
> >
> > > [
> >
> > > PrimaryKey(Generator=PrimaryKeyType.Increment)]
> >
> > > public virtual int Id{get;set;}
> >
> > > [
> >
> > > Property(Unique=true, Index="idx_uq_OutcomeGroupId")]
> >
> > > public virtual string OutcomeGroupUniqueId
> >
> > > {
> >
> > > get;
> >
> > > set;
> >
> > > }
> >
> > > [
> >
> > > Property()]
> >
> > > public virtual string OutcomeGroupName
> >
> > > {
> >
> > > get;
> >
> > > set;
> >
> > > }
> >
> > > [
> >
> > > HasMany(typeof(OutcomeGroupOutcome), Cascade =
> > > ManyRelationCascadeEnum.AllDeleteOrphan)]
> >
> > > public virtual IList<IOutcomeGroupOutcome> OutcomeGroupOutcomes
> >
> > > {
> >
> > > get;
> >
> > > set;
> >
> > > }
> >
> > > [
> >
> > > HasAndBelongsToMany(typeof(Class1), Table = "Table2", ColumnKey =
> > > "Class2Id", ColumnRef = "Class1Id", Cascade =
> > > ManyRelationCascadeEnum.All)]
> >
> > > public virtual IList<iClass1> Class1Items
> >
> > > {
> >
> > > get;
> >
> > > set;
> >
> > > }
> >
> > > }
> >
> > > I am trying to add a combo of these 2 classes together for the Class1
> > > Items and Class 2 Items many-to-many link, which works fine for the
> > > first time you try to save something, however any time thereafter if
> > > you try to save something, the following exception is thrown:
> > > a different object with the same identifier value was already
> > > associated with the session: 1, of entity: Class1
> >
> > > It almost seems as if the system is trying to save the original record
> > > (Class1) again in the database using the same ID, however no SQL is
> > > executed (I checked with Profiler, nothing gets fired).
> >
> > > What am I missing or doing wrong? This is my First time working with
> > > ActiveRecord and have exhausted all means of trying to repair it.
> >
> > > Any help would be greatly appreciated....- Hide quoted text -
> >
> > - Show quoted text -
> >
>

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