by
Neon Quach
3. May 2009 03:34
Dynamic data trong Visual Studio 2K8 SP1 sử dụng Linq To SQL
Visual studio (VS) 2008 SP1 giới thiệu 1 mẩu web mới, giúp chúng ta dể dàng xây dựng ứng dụng dữ liệu trước khi xây dựng website (data driven development) đó là Dynamic Data WebSite.
Hầu hết các ứng dụng ASP.NET đều thao tác với CSDL giống như SQL Server, 90% các đọan mã của chúng ta đều dùng để lấy dữ liệu, cập nhật dữ liệu vào CSDL.
Các bước thực hiện:
1. Tạo 1 project với mẫu là Dynamic Data WebSite.

Khi đó VS sẻ tự tạo cho chúng ta 1 số các pages cần thiết để xây dựng website dynamic data.

Khảo sát các mẫu:
Thư mục PageTemplates:
- Details.aspx: Sử dụng DetailsView control cho việc hiển thị 1 mẫu tin trong CSDL, mặc định dùng cho việc lựa chọn (Select operation).
- Edit.aspx: Sử dụng DetailsView control cho việc chỉnh sửa 1 mẫu tin trong CSDL, mặc định dùng cho việc chỉnh sửa (Edit operation).
- Insert.aspx: Sử dụng DetailsView control cho việc thêm 1 mẫu tin trong CSDL, mặc định dùng cho việc thêm (Insert operation).
- List.aspx: Sử dụng control GridView hiển thị danh sách các mẫu tin trong CSDL, và 1 control DropDownList cho việc lọc (filter) dữ liệu.
- ListDetails.aspx: cũng giống như List.aspx, nhưng có thêm lựa chọn và thêm mẫu tin sử dụng DetailsView control, trang aspx này là trang tất cả trong 1, nhưng mặc định không được sử dụng, chúng ta có thể thay đổi trong file cấu hình Global.asax.
Thư mục FieldTemplates:
Tập hợp tác các các user control được dùng cho các trang aspx, ví dụ như textbox,nếu thay đổi thì nó được ảnh hưởng cho tấc cả các trang.
- Boolean.ascx: Hiển thị kiểu dữ liệu luận lý (Boolean Type), sẻ kết xuất (Render) checkbox control và được disable.
- Boolean_Edit.ascx: Cho phép user chỉnh sửa giá trị Boolean.
- Children.ascx: Hiển thị các trường có quan hệ một - nhiều, và chuyển user qua trang có quan hệ, kết xuất ra HyperLink control.
- DateTime.ascx: Sử dụng Literal hiển thị kiểu dữ liệu DataTime.
- DateTime_Edit.ascx: Render ra Textbox control cho việc cập dử liệu kiểu ngày tháng, cũng render ra RequiredFieldValidator nếu trường này không cho phép null trong CSDL.
- Decimal_Edit.ascx: Render Textbox control, và CompareValidator để kiểm tra dữ liệu nhập vào có thể chuyển sang dạng Decimal hay không?
- ForeignKey.ascx: Hiển thị các trường có quan hệ nhiều - một, và render ra HyperLink control để chuyển user sang trang có quan hệ.
- ForeignKey_Edit.ascx: Dùng chỉnh sửa các trường có quan hệ nhiều - một, kết xuất ra DropDownList control cho việc lựa chọn khóa ngoại.
- Text.ascx: Render ra Literal cho việc hiển thị dử liệu String, Decimal, Double, Int32, byte, short và long.
- Text_Edit.ascx: Render ra Textbox control với TextMod = SingeLine.
- Multiline_Edit.ascx: Render ra Textbox control với TextMod = MultiLine,map với các kiểu dữ liệu là TEXT, NTEXT, VARCHAR(MAX), NVARCHAR(MAX), dùng để cập nhật dữ liệu.
Tạo dự án: Dynamic Data
1. Tạo 1 kết nối tới CSDL Pubs.

2. Thêm Linq To SQL class, và named nó là Pubs.dbml.

3. Kéo bảng title và titleauthor từ server explorer vào trình thiết kế dbml.

4. Vào file Global.asax.cs uncomment dòng lệnh model.RegisterContext và thiết lập ScaffoldAllTables = true và thay đổi data context thành PubsDataContext (đả tạo từ khi nảy)

Ok xong, giờ chạy trang default.aspx lên.
dd581f08-3b0a-45d8-baa4-5e36881c16fa|2|5.0
Tags:
linq
Categories: linq2sql