2012-07-16 111 views
0

我有一個LLBLGen實體。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。

我相信LLBLgen會自動爲所有變量分配一個默認值,但我現在不能那麼確定。

任何人都可以對此有所瞭解。謝謝。

回答

0

LLBLGen Pro運行時不會自動分配默認值,但是您可以將其指定爲數據庫中的默認約束。

您可以檢查是否某個字段通過檢查你的實體的 '域' 集合賦值:

布爾isValueAssigned = myEntity.Fields [(INT)MyFieldIndex.Foo] .CurrentValue = NULL;

+0

這是我應該用工廠做的事情,爲我初始化我的實體嗎? – Craig 2012-07-21 06:54:43

+0

這是一種可能性,我通常喜歡在實體的部分類中重寫OnBeforeEntitySave以設置默認值(例如創建/修改日期等)或將默認約束添加到數據庫 – 2012-07-23 08:23:11