光脚丫学LINQ(042):如何将列表示为由数据库生成的列

演示视频:http://u.115.com/file/f2bdf2a2da

演示说明
在本演示中,介绍了如何在对象模型中,使实体类的列成员来映射数据表中由数据库生成值的列;
也介绍了这种列成员自动获取数据库生成值的特性,及其实现办法;
在演示的结尾介绍了如何使用对象关系设计器来设置由数据库生成值的列。
另外说明一下,可能是因为我数学没有学好?
演示中竟然将订单编号11084居然念成了一千一百零八十四。这回真是糗大了!^_^

演示重点
什么是由数据库生成的列?
也就是列的数值由数据库自动生成,并不需要我们提供。比如自增长列、版本列等。
通过将实体类的列成员的ColumnAttribute特性的IsDbGenerated设置为true来表示由数据库生成的列。
据此可以推断,默认情况下IsDbGenerated属性值应该为false,这样的默认值是比较合理的。
如果实体类的某个列成员表示的是数据库生成的列,那么就不要试图为这些的列成员赋值,
虽然在代码中赋值是没有问题的,但所提供的数值是不会被保存在数据库中的。
这可以通过LINQ to SQL生成的SQL命令看出来,
无论是INSERT,还是UPDATE都不会包含IsDbGenrated=true的列成员。
如果实体类列成员的ColumnAttribute.IsDbGenerated设置为true的话,
那么当LINQ to SQL执行了添加或删除操作时,都会自动的获取这些列的值,即数据库生成的值。
因此,我们无需再次显式的使用LINQ to SQL去查询这个由数据库生成的值。
实际上,当LINQ to SQL发送更新或者添加SQL命令的时候,
同时也会发送一个获取数据库生成列的数值的SELECT命令。

示例代码

2010-12-4 光脚丫思考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值