2012-07-16 90 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