将对象插入数据库的问题...
这是一个很基础的问题,我没有想到办法解决,望大家指点一二...
要将 租房信息HouseInfo 存入数据库,
数据库表我是这样设计的:
id int型 主键,自动增长1
releasedate datetime型 出租信息发布日期
.......
Model层的 租房信息类HouseInfo 包含了数据库中的id列,我现在在UI层从用户输入处得到了一个 HouseInfo 对象。
现在要将这个HouseInfo对象存入数据库,由于是从用户输入数据构造的HouseInfo对象,所以那个id值无法确定(这个id值应该不需要用户确定,靠数据库自动增长),于是那个id属性未赋值。
问题出现了:
1.自己手写DAL层代码时:都不插入id列,要特意避开那个具有自动增长的id列,不插入该列,让它自动增长
2.当用代码生成工具时:工具根据数据库中那个HouseInfo表生成了DAL层,生成的DAL层的插入代码会将HouseInfo对象的所有字段都插入HouseInfo表中。即HouseInfo对象的id字段也要插入表标志列id中...
我想问2个问题:
1.将对象插入表中,与表中那个自动增长标志列id列对应的 对象的那个字段 是不是不赋值(大多数情况是不是这样)?
2.代码生成工具能不能识别 自动增长的标志列,从而不对该列插值;如果不能识别是不是[必须]要改一下代码?我用 李天平的那个代码生成器
------解决方案--------------------1:不需要赋值
2:感觉你用的O/R映射工具吧,将表结构映射成对象。如果你的O/R映射工具都不能识别自动增长的标志列,我建议不要用这个非常不成熟的O/R工具。
------解决方案--------------------自动增加长的值,在插入或者修改时不需要付值,如果代码里面有将其删除就OK
用李天平代码生成的代码必须得改,那里面除了Model层外,其它层的代码必须得改,而且改动量很大.建议自己用用CodeSmith这样生成工具