nobugs

江湖无辈,哥们可能满目皆是; 社会有序,朋友也许屈指可数。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

由于在设计数据库时,关键的数据表中设了外键。而在系统架构中,数据是通过实体类来传递操作(查询、更新、新增、删除等)所需的参数。
导致如下情况:
1、表的外键类型为int,而且可以为空
2、实体类创建时对int类型,赋给默认值0.
3、用户没为该属性指定数值
结果会更新表记录时,出现外键规则出错。
“UPDATE 语句与 FOREIGN KEY 约束"FK_DUTY_REF_POSITION"冲突。”

将原来实体类的定义方式修改了,则可以让int取null值

原:

private Int32 posID;
public Int32 PosID
{
    get { return posID; }
    set { posID = value; }
}


更改后:

private int? posID;
public int? PosID
{
    get 
    {
        return ((this.posID == 0) ? null : this.posID);
    }
    set { posID = value; }
}

posted on 2007-10-23 14:55  Zero.Tan  阅读(435)  评论(0编辑  收藏  举报