дано:
1)
утечка памятиАвтор: ili
Дата: 18.03.09
2)
бесконечная рекурсияАвтор: ili
Дата: 04.09.08
хочется, с одной стороны сохранить приемущества EditableObject с другой, избежать подобных неприятностей, сейчас делаю примерно так:
[MapField("CategoryId", "Category.Id")]
public abstract class Entity : EditableObject
{
public abstract int Id { get; set; }
private EditableValue<Category> _category = new EditableValue<Category>(EditableObject.CreateInstance<Category>());
public Category Category
{
get
{
return _category.Value;
}
set
{
_category.Value = value;
if (_category.IsDirty)
OnPropertyChanged("Category");
}
}
public override bool IsDirty { get { return base.IsDirty || _category.IsDirty; } }
// ну и т.д. переопределения
}
public abstract class Category : EditableObject
{
public abstract int Id { get; set; }
public abstract string Name { get; set; }
}
а хотелось бы так:
[MapField("CategoryId", "Category.Id")]
public abstract class Entity : EditableObject
{
public abstract int Id { get; set; }
[NoTrackingChanges]
public abstract Category Category { get; set; }
}