Переопределите методы BeforeInsert () и BeforeUpdate () (протестировано и подтверждено) с помощью SubSonic 2 и задайте столбцы, для которых требуется ReadOnly.
public partial class Products
{
protected override void BeforeInsert()
{
Schema.GetColumn(Columns.CreatedOn).IsReadOnly = true;
base.BeforeInsert();
Schema.GetColumn(Columns.CreatedOn).IsReadOnly = false;
}
protected override void BeforeUpdate()
{
Schema.GetColumn(Columns.ModifiedOn).IsReadOnly = true;
base.BeforeUpdate();
Schema.GetColumn(Columns.ModifiedOn).IsReadOnly = false;
}
}
Схема статична, поэтому вы можете сделать это один раз в своем коде (даже вне класса) и больше не беспокоиться об этом, но я бы предпочел этот способ.
Я не пробовал это с SubSonic3, но свойство IsReadOnly все еще там, поэтому оно тоже должно работать.