0

LLBLGenエンティティがあります。

MyEntity{
    public Decimal Foo;    //Stored in database as a NOT NULL field
}
....
public void SomeMethod(){
    MyEntity entity = new MyEntity();  //on initial inspection Foo reads as "0"

    adapter.SaveEntity(entity);  //will throw exception, "Foo can't be assigned a NULL value"
                                 //but on debug inspection, Foo = 0

    entity.Foo = 14M;
    adapter.SaveEntity(entity);  //will save ok.
}

数値に値を割り当てない場合、デバッガーはそれをnullではないと読み取りますが、実際にはNULLであることを通知する例外をスローします。

私はLLBLgenを信頼して、すべての変数にデフォルト値を自動割り当てしていましたが、今は確信が持てません。

これに光を当てることができる人は誰でもお願いします。ありがとう。

4

1 に答える 1

0

LLBLGen Proランタイムはデフォルト値を自動的に割り当てませんが、データベースでデフォルト値として指定できます。

エンティティの「フィールド」コレクションをチェックすることで、フィールドに値が割り当てられているかどうかを確認できます。

bool isValueAssigned = myEntity.Fields [(int)MyFieldIndex.Foo] .CurrentValue!= null;

于 2012-07-17T09:00:31.920 に答える