J'ai un objet CSLA qui retourne des données de la base de données mais lorsque je modifie l'une des propriétés de l'objet, l'objet dit toujours IsDirty = "false". Bien que lorsque je crée un nouvel objet, IsDirty = "true". Je suis sûr que c'est juste quelque chose de simple qui me manque dans mon code. Ce qui suit est mon objet:CSLA Ne pas signaler l'objet comme étant sale après avoir été modifié
[Serializable()]
[ObjectFactory(FactoryNames.SiteFactoryName)]
public class Site : BusinessBase<Site>
{
#region Business Methods
public static PropertyInfo<int> IdProperty = RegisterProperty<int>(p => p.Id);
public int Id
{
get { return GetProperty(IdProperty); }
set { LoadProperty(IdProperty, value); }
}
public static PropertyInfo<string> NameProperty = RegisterProperty<string>(p => p.Name);
public string Name
{
get { return GetProperty(NameProperty); }
set { LoadProperty(NameProperty, value); }
}
public static PropertyInfo<string> CodeProperty = RegisterProperty<string>(p => p.Code);
public string Code
{
get { return GetProperty(CodeProperty); }
set { LoadProperty(CodeProperty, value); }
}
public static PropertyInfo<string> AliasProperty = RegisterProperty<string>(p => p.Alias);
public string Alias
{
get { return GetProperty(AliasProperty); }
set { LoadProperty(AliasProperty, value); }
}
public static PropertyInfo<string> AddressProperty = RegisterProperty<string>(p => p.Address);
public string Address
{
get { return GetProperty(AddressProperty); }
set { LoadProperty(AddressProperty, value); }
}
public static PropertyInfo<string> PostCodeProperty = RegisterProperty<string>(p => p.PostCode);
public string PostCode
{
get { return GetProperty(PostCodeProperty); }
set { LoadProperty(PostCodeProperty, value); }
}
public static PropertyInfo<string> InfoProperty = RegisterProperty<string>(p => p.Info);
public string Info
{
get { return GetProperty(InfoProperty); }
set { LoadProperty(InfoProperty, value); }
}
private static PropertyInfo<int> CustomerLinkProperty = RegisterProperty<int>(c => c.CustomerLink);
public int CustomerLink
{
get { return GetProperty(CustomerLinkProperty); }
set { SetProperty(CustomerLinkProperty, value); }
}
private static PropertyInfo<Accounts> AccountsProperty = RegisterProperty<Accounts>(c => c.Accounts);
public Accounts Accounts
{
get { return GetProperty(AccountsProperty); }
set { SetProperty(AccountsProperty, value); }
}
#endregion
#region Business Rules
protected override void AddBusinessRules()
{
}
#endregion
#region Authorization Rules
protected override void AddAuthorizationRules()
{
// add AuthorizationRules here
//AuthorizationRules.AllowWrite(NameProperty, "ProjectManager");
//AuthorizationRules.AllowWrite(StartedProperty, "ProjectManager");
//AuthorizationRules.AllowWrite(EndedProperty, "ProjectManager");
//AuthorizationRules.AllowWrite(DescriptionProperty, "ProjectManager");
}
protected static void AddObjectAuthorizationRules()
{
}
public override bool CanWriteProperty(string propertyName)
{
return true;
}
#endregion
#region Facotry Methods
public static Site NewSite()
{
return DataPortal.Create<Site>();
}
public static Site GetSite(int id)
{
return DataPortal.Fetch<Site>(new SingleCriteria<Site, int>(id));
}
public static Site GetSite(SiteCriteria siteCriteria)
{
return DataPortal.Fetch<Site>(siteCriteria);
}
public static void DeleteSite(int id)
{
DataPortal.Delete(new SingleCriteria<Site, int>(id));
}
private Site()
{ /* require use of factory methods */ }
#endregion
public class SiteCriteria
{
public int Id { get; private set; }
public SiteCriteria(int id)
{
Id = id;
}
}
}
Toute aide serait grandement appréciée.
Merci
Êtes-vous en train de changer la valeur à autre chose que ce qu'il est chargé? –