演示視頻: http://u.115.com/file/f2bdf2a2da 演示說明 在本演示中,介紹了如何在對象模型中,使實體類的列成員來映射數據表中由數據庫生成值的列; 也介紹了這種列成員自動獲取數據庫生成值的特性,及其實現辦法; 在演示的結尾介紹了如何使用對象關系設計
演示視頻: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 光腳丫思考
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com