3.6 CSLA --> ObjectFactory setting Primary key / Identifier field

3.6 CSLA --> ObjectFactory setting Primary key / Identifier field

Old forum URL: forums.lhotka.net/forums/t/5930.aspx


rfcdejong posted on Wednesday, December 03, 2008

The primary key property doesn't want to be filled, maybe im doing it wrong?

Please help :)

My business object:

[Serializable()]
[
CslaFactory("Factory Type=Data.Campagne.Factory.CampagneFactory, Data.Campagne;Item Type=Dias.Business.CampagneBO.Campagne, CampagneBO")]
public class Campagne : U4ABusinessBase<Campagne>
{
#region Business Methods

private byte[] _timestamp = new byteMusic [8];

#region Campagnenummer
private static PropertyInfo<int> _campagnenummerProperty = RegisterProperty(typeof(Campagne), new PropertyInfo<int>("Campagnenummer"));
private int _campagnenummer = _campagnenummerProperty.DefaultValue;
[System.ComponentModel.DataObjectField(true, true)]
public int Campagnenummer
{
   get { return GetProperty(_campagnenummerProperty, _campagnenummer); }
   
set { SetProperty(_campagnenummerProperty, value); }
}
#endregion Campagnenummer

....

My factory:

public class CampagneFactory : ObjectFactory
{

      public Dias.Business.CampagneBO.Campagne Fetch(CriteriaBase criteria)
      {
            Dias.Business.CampagneBO.
Campagne result = (Dias.Business.CampagneBO.Campagne)Activator.CreateInstance(typeof(Dias.Business.CampagneBO.Campagne), true);

            using (this.BypassPropertyChecks(result))
            { 
                  result.Campagnenummer = 1;
                  result.Omschrijving =
"foo";
            }
            return result;
      }
}

At the end: result just has Campagnenummer 0

rfcdejong replied on Wednesday, December 03, 2008

It seems i figured it out myself.. at least it seems to work :)

set { SetProperty(_campagnenummerProperty, ref _campagnenummer, value); }

instead of

set { SetProperty(_campagnenummerProperty, value); }

Copyright (c) Marimer LLC