私たちのプログラムでは、LLBLGENには約50以上のエンティティがあります。それらはすべて、ModifyDatetimeとModifyUserIDという2つの列があります。これらは、SQLデータベースの各テーブルの最後の2列でもあります。
.Save()のLLBLGEN関数を変更して、セッション変数と、プログラマーが.Save()を実行するときにすべてのエンティティに送信される現在の時刻を設定します。
セッションのユーザーIDと日時を保存するために取得しましたが、場合によってはエラーが発生します。これは、レンダリング時またはコンパイル時に変更される列の位置に関係していると思います。
___Entity.cs(この場合はCityEntity.cs)の1つから2つのパブリック仮想関数をコピーし、別のエンティティタイプ(ServicesEntity.cs)を保存するときにも機能しました。したがって、しばらくの間、CityFieldIndex。*は単なるランダムな整数だと思いました。どちらのクラスにも、列の数が異なります。あるいは、このパブリックバーチャルとそれをオーバーライドする方法を完全に理解していないのかもしれません。
また、CityFieldIndexの代わりにRows.Count-1とRows.Count-2を送信してみました。*
また、SetModifyUserIdで奇妙なエラーが発生します。値33はタイプ'System.Int32'であり、フィールドはタイプ'System.Nullable`1 [System.DateTime]'(33はユーザーID)です。
CommonEntityBase.csのカスタムコードは次のとおりです。
public override bool Save(IPredicate updateRestriction, bool recurse)
{
System.Diagnostics.Debug.WriteLine("i'm overriding SAVE yeii");
ModifyDatetime = DateTime.Now;
ModifyUserId = 33;
return base.Save(updateRestriction, recurse);
}
public virtual Nullable<System.DateTime> ModifyDatetime
{
get { return (Nullable<System.DateTime>)GetValue((int)CityFieldIndex.ModifyDatetime, false); }
set { SetValue((int)CityFieldIndex.ModifyDatetime, value, true); }
}
public virtual Nullable<System.Int32> ModifyUserId
{
get { return (Nullable<System.Int32>)GetValue((int)CityFieldIndex.ModifyUserId, false); }
set { SetValue((int)CityFieldIndex.ModifyUserId, value, true); }
}