Hi,
I found reason.
=============== Entities ======================
TMoney = class;
[Entity, Automapping]
TUserData = class
private
FId : Int64;
[Column('UserName', [TColumnProp.Required, TColumnProp.Unique])]
FUserName : Nullable<string>;
[Column('NickName', [TColumnProp.Required, TColumnProp.Unique])]
FNickName : Nullable<string>;
[Association([TAssociationProp.Required], CascadeTypeAll)]
[JoinColumn('ID_MONEY', [TColumnProp.Required])]
FMoneyData : Proxy<TMoney>;
protected
function GetMoneyData: TMoney;
procedure SetMoneyData(const AValue: TMoney);
public
property Id: Int64 read FId;
property UserName: Nullable<string> read FUserName write FUserName;
property NickName: Nullable<string> read FNickName write FNickName;
property MoneyData: TMoney read GetMoneyData write SetMoneyData;
end;
[Entity, Automapping]
TMoney = class
private
FId : Int64;
FMoneyValue : Int64;
public
property Id: Int64 read FId;
property MoneyValue: Int64 read FMoneyValue;
end;
==================== Code ===================
procedure TfrmMain.Button1Click(Sender: TObject);
var
vUserData : TUserData;
begin
vUserData := CreateUserData;
try
FManager.Save(vUserData);
except
vUserData.MoneyData.Free;
end;
end;
function TfrmMain.CreateUserData: TUserData;
begin
Result := TUserData.Create;
Result.UserName := Edit1.Text;
Result.NickName := Edit2.Text;
Result.MoneyData := TMoney.Create;
end;
============================================
First time in Button1 Click, it's ok.
Second time with same UserName or NickName property raise 'Unique .....' Exception
Third time any property raise 'OPF Internal error: Cannot add in object map - id already exists'.