LLBLGen默认变量字段值读取不为空,但为空
问题描述:
我有一个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会自动为所有变量分配一个默认值,但我现在不能那么确定。
任何人都可以对此有所了解。谢谢。
答
LLBLGen Pro运行时不会自动分配默认值,但是您可以将其指定为数据库中的默认约束。
您可以检查是否某个字段通过检查你的实体的 '域' 集合赋值:
布尔isValueAssigned = myEntity.Fields [(INT)MyFieldIndex.Foo] .CurrentValue = NULL;
这是我应该用工厂做的事情,为我初始化我的实体吗? – Craig 2012-07-21 06:54:43
这是一种可能性,我通常喜欢在实体的部分类中重写OnBeforeEntitySave以设置默认值(例如创建/修改日期等)或将默认约束添加到数据库 – 2012-07-23 08:23:11