Hiển thị các bài đăng có nhãn ADO.NET Entity. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn ADO.NET Entity. Hiển thị tất cả bài đăng

Thứ Sáu, 6 tháng 2, 2009

Dùng Một Entity Framework như là một nguồn dữ liệu WinForms

Trong hướng dẫn này, bạn sẽ tạo ra một Windows Forms liệu nguồn từ một thực thể trong một liệu Entity Mẫu.

Hướng dẫn này làm việc với một thực thể đơn giản và không bao gồm các tài sản chuyển hướng. Chơ cho một hướng dẫn cho thấy các thực thể tắt tính menu Khung được sử dụng cho Databinding.
Thêm một nguồn dữ liệu mới
  • Chọn liệu mục từ trình đơn
  • Chọn Add New Data Source, mà sẽ bắt đầu các nguồn dữ liệu Configuration Wizard.
  • Trong trang đầu tiên của trình wizard, chọn đối tượng là loại nguồn dữ liệu của bạn và bấm Next.
  • Trên trang tiếp theo của trình wizard, mở rộng cây và định vị không gian tên cho các dữ liệu Entity Mẫu.
  • Mở rộng Mẫu liệu để lộ các lớp thực thể.
  • Chọn những thực thể mà bạn có để tạo ra một nguồn tư liệu từ và bấm Next.
Hiển thị các nguồn dữ liệu Window trong IDE
  • Để xem các dự án nguồn dữ liệu, chọn mục trình đơn liệu, sau đó hiển thị dữ liệu nguồn từ nó thả xuống

Theo mặc định, cửa sổ Data Source sẽ được cập cảng và có thể được hiển thị, ẩn hoặc undocked như với bất kỳ cửa sổ docked khác.

  • Chọn các nguồn dữ liệu mới mà bạn vừa tạo ra, sau đó kéo và thả nó vào Form Windows.
Theo mặc định, một DataGridView mới sẽ được tạo ra cùng với một thanh công cụ Navigation. Những điều khiển này được ràng buộc với BindingSource và đóng Navigator các thành phần đó cũng đã được tạo ra. Các BindingSource sẽ cung cấp các hook vào dữ liệu.

Populating lưới với dữ liệu của DataSource.

Nó vẫn còn cần thiết để viết mã kích hoạt mà là lấy dữ liệu.
  • Double click vào mẫu mã để truy cập vào nó.
  • Trong sự kiện Load của biểu mẫu, thêm mã để nhanh chóng EntityContainer của EDM và truy xuất dữ liệu.
Lưu ý: Chữ đậm đại diện mã rằng cần phải được thêm vào.

VB
Imports WindowsApplication1Public Class Form1
Private aw As AdventureWorksLTEntitiesPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
aw = New AdventureWorksLTEntities
    CustomerBindingSource.DataSource = aw.Customers.OrderBy(Function
(cust) cust.CompanyName)End Sub
End Class

C#
namespace WindowsApplication1
{
  public partial class Form1 : Form
  {
AdventureWorksLTEntities aw;
    public Form1()
    {
      InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
      aw=new AdventureWorksLTEntities();
      customerBindingSource.DataSource = aw.Customers;
    }
  }
}
  • Khởi động dự án và bạn sẽ thấy rằng lưới là populated.
Chỉnh sửa và Lưu dữ liệu

Các thành phần BindingSource đảm bảo rằng bất kỳ sửa đổi được thực hiện cho lưới điện được thực hiện cho các lớp Thực thể được ràng buộc ở bước trước. Khi người dùng hoàn tất chỉnh sửa, do đó nó là cần thiết để lưu dữ liệu trong các thực thể trở về lưu trữ dữ liệu.
  • Cho phép lưu nút trên thanh công cụ chuyển hướng.
    • Nhấp vào nút lưu
    • Trong cửa sổ thuộc tính, thay đổi tài sản Bật True.
  • Click đúp vào nút lưu để đi đến xử lý sự kiện Click vào nó.
  • Thêm mã SaveChanges đến sự kiện này.
VB
Private Sub CustomerBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CustomerBindingNavigatorSaveItem.Click
aw.SaveChanges()End Sub

C#
private void customerBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
  aw.SaveChanges();
}



Chúc bạn thành công.
DangTrung.

Thứ Năm, 5 tháng 2, 2009

WPF Ràng Buộc Dữ Liệu Với Entity Framework

Trong hướng dẫn này, bạn sẽ tạo ra một Windows đơn giản trình bày mẫu mà dùng LINQ to Entities truy vấn đối với một khung Entity Entity liệu Mẫu là nguồn cho điều khiển.

Các trang sẽ có một danh sách thả xuống của khách hàng. Khi một khách hàng được chọn, địa chỉ chính thông tin của khách hàng sẽ được hiển thị.

Tạo một ứng dụng WPF mới và thêm một thực thể dữ liệu Mẫu
  • Thêm một thực thể dữ liệu Mẫu cho các cơ sở dữ liệu AdventureWorksLT cho dự án.
Thêm điều khiển để cửa sổ mặc định
  • Nhấp vào tab cho Window1.XAML tại các cửa sổ tài liệu để xem cửa sổ mặc định sản phẩm nào.
  • Từ hộp công cụ, chọn một điều khiển Label.

  • Nhấp vào trong cửa sổ thiết kế để đặt sự kiểm soát nhãn trên bề mặt thiết kế. Kéo điều khiển đến vị trí mong muốn.

  • Trong cửa sổ tiết cho các điều khiển Label, thay đổi sở hữu nội dung từ "Label" đến "Phiêu Works Khách hàng"
  • Nếu cần, hãy nhấp vào kiểm soát nhãn trên bề mặt thiết kế, sau đó đưa chuột chuột qua biên giới bên phải của nhãn. Nhấp và kéo biên giới quyền chiều rộng mong muốn.

  • Trong hộp công cụ, nhấn vào điều khiển ListBox, sau đó bấm vào trong khu vực thiết kế cửa sổ để thêm một ListBox với bề mặt thiết kế.

  • Sử dụng phương pháp tương tự như bạn đã làm với nhãn, thay đổi kích cỡ của ListBox để đặt lại vị trí và làm cho nó rộng hơn.
  • Thêm ba nhãn hơn vào cửa sổ và trong cửa sổ tiết, thay đổi sở hữu nội dung của họ để "Primary Address", "City" và "Country"

  • Thêm ba nhãn nhiều hơn và trong cửa sổ tiết, thay đổi tài sản dày biên giới của họ để 1 và BorderBrush to Black. Các tài sản BorderBrush là thay đổi cách sử dụng một danh sách thả xuống.
Lưu ý: Nếu bạn chọn cả ba nhãn trong thiết kế bằng cách sử dụng Ctrl + Click vào, nó có thể thay đổi các thuộc tính cho cả ba cùng một lúc.


Truy vấn awModel để cung cấp dữ liệu cho các ràng buộc
  • Rê chuột đến bên ngoài của các cửa sổ và nhấp đúp để Visual Studio sẽ tự động tạo ra các sự kiện Window_Loaded cho cửa sổ.

VB Result:


C# Result :

  • Trong sự kiện Window_Loaded, sao chép đoạn mã sau đó sẽ thực hiện một truy vấn LINQ to Entities mà khoan thông qua các thực thể khách hàng để tìm các thực thể Địa chỉ thuộc CustomerAddress đầu tiên trong bộ sưu tập CustomerAddresses của khách hàng. Kết quả sẽ được sử dụng như là nguồn gốc cho Tìm ListBox.
  VB
Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) _
Handles Me.Loaded

Dim aw = New awEntities
Dim fullGraph = From cust In aw.Customers.Include("CustomerAddresses.Address") _
From CustomerAddress In cust.CustomerAddresses.Take(1) _
Select cust, CustomerAddress
Dim query = From cGraph In fullGraph _
Select cGraph.cust.CustomerID, _
cGraph.cust.CompanyName, cGraph.CustomerAddress.AddressType, _
cGraph.CustomerAddress.Address.City, cGraph.CustomerAddress.Address.CountryRegion
Me.ListBox1.ItemsSource = query
End Sub

C#
private void Window_Loaded(object sender, RoutedEventArgs e)
{

awEntities aw=new awEntities();
var fullGraph = from cust in aw.Customers.Include("CustomerAddresses.Address")
from CustomerAddress in cust.CustomerAddresses.Take(1)
select new { cust, CustomerAddress };
var query = from cGraph in fullGraph
select new
{
cGraph.cust.CustomerID,
cGraph.cust.CompanyName,
cGraph.CustomerAddress.AddressType,
cGraph.CustomerAddress.Address.City,
cGraph.CustomerAddress.Address.CountryRegion
};
listBox1.ItemsSource = query;
}
 
Thêm DataTemplates và bindings vào XAML để hiển thị các dữ liệu bị ràng buộc
  • Mở Window1 thiết kế tại các cửa sổ tài liệu.
  • Nếu cần thiết, thay đổi giao diện để ngăn Split để xem Designer và XAML đồng thời. Bạn có thể làm điều này với các biểu tượng cửa sổ ở dưới cùng của cửa sổ thiết kế.


  • Nhấp vào ListView trong thiết kế. Các mã XAML cho điều khiển sẽ được nêu bật.
  • Thêm các tham số sau vào ListBox
ItemsSource = "(Binding)"
Kết quả:


  • Xóa đóng dấu gạch chéo ("/") cuối của ListBox.
  • Thêm mã sau dưới đây là yếu tố ListBox.
   
      
          
      
   



Kết quả:

    
        
              
        
    

  • Trong thiết kế, nhấp vào đầu tiên trong ba nhãn giáp. Các mã XAML cho nhãn sẽ được tô đậm.
  • Xác định vị trí của chuỗi nội dung mặc định "Label" trong mã XAML.

Nếu của Label XAML không phải là gói, bạn sẽ cần phải di chuyển sang phải để xác định vị trí đó.
  • Thay thế nội dung với mã sau đây


Kết quả:

Thứ Tư, 4 tháng 2, 2009

Quan hệ Many to Many Trong Entity Data Model

Hướng dẫn này sẽ giải thích làm sao xuất hiện nhiều mối quan hệ trong Data Entity Model.

Quan hệ Many to Many là gì?

Một nhiều để có nhiều mối quan hệ là một trong những nơi hai bảng dữ liệu hoặc các thực thể có nhiều hàng được kết nối với một hoặc một số hàng trong bảng khác.

Một ví dụ điển hình là EmployeeAddress tham gia bảng trong cơ sở dữ liệu mẫu AdventureWorks. Một nhân viên có thể có nhiều địa chỉ (nhà, nghỉ phép, vv) và nó có thể cho một địa chỉ để áp dụng cho nhân viên nhiều. Trong cơ sở dữ liệu, một bảng tham gia thường được sử dụng để tạo ra các mối quan hệ.

Lưu ý rằng có tính chất bổ sung trong bảng tham gia theo dõi các loại địa chỉ (một tuỳ biến của bảng gốc), khi tham gia đã được tạo/sửa đổi và một định danh duy nhất cho mỗi hàng.

Một ví dụ khác của việc này là sinh viên và Lớp học tại một cơ sở dữ liệu để quản lý một trường học. Một học sinh có thể được trong nhiều lớp học và một lớp có thể có nhiều sinh viên.


Quan hệ Many to Many Trong Entity Data Model

Entity Data Model Wizard xử lý hai bộ bàn rất khác khi chúng được nhập khẩu vào một EDM.

Các Employee/Addresses các thực thể nhân bản các bảng - hai thực thể với một thực thể tham gia ở giữa. Có những tài sản chuyển hướng để đi qua giữa ba thực thể, Employee.EmployeeAddresses được bạn từ Employee đến tham gia thực thể và từ đó bạn có thể sử dụng EmployeesAddresses.Addresses để có được các Addresses cho bạn bắt đầu với Employee.

Sử dụng dữ liệu này trong mã yêu cầu tham gia xây dựng các truy vấn hoặc các truy vấn mà khoan thông qua menu nhiều tài sản (ví dụ như Employee.EmployeeAddress.Addresses), ví dụ:

Private Sub employeeaddress()
Dim aw As New AdventureWorksTModel.AdventureWorksTEntities
Dim empaddQuery = From e In aw.Employees, ea In e.EmployeeAddresses _
Select e.EmployeeID, e.HireDate, ea.AddressType, ea.Addresses.City
For Each emp In empaddQuery.OrderBy(Function(e) e.EmployeeID)
Console.WriteLine(String.Format("ID {0}:: Hire Date: {1:d}, Address Type: {2}, City {3}", _
emp.EmployeeID, emp.HireDate, emp.AddressType, emp.City))
Next
End Sub

Những kết quả với:

ID 1:: Hire Date: 7/31/1996, Address Type: Home , City Monroe
ID 1:: Hire Date: 7/31/1996, Address Type: Vacation , City Seattle
ID 2:: Hire Date: 2/26/1997, Address Type: Home , City Bellevue
ID 2:: Hire Date: 2/26/1997, Address Type: Weekend , City Everett
etc...

Student/class thực thể tuy nhiên, không có tham gia bảng. Thay vào đó họ có tài sản chuyển hướng để có được dữ liệu liên quan của họ. Bạn có thể truy vấn class.students và bạn có thể truy vấn cho student.classes.

Đây là một lợi ích đặc biệt mà các khung thực thể cung cấp khi tham gia các bảng chỉ chứa các phím và không có các cột bổ sung.

Bởi vì điều này có thể đi qua trực tiếp vào các dữ liệu liên quan mà không cần sử dụng một thực thể tham gia. Dưới đây là một ví dụ mà sử dụng một lồng nhau từ khoản để tạo ra một loại anoymous dựa trên các dữ liệu liên quan.

Private Sub studentclasses()
Dim school As New SchoolSampleModel.SchoolSampleEntities
Dim studclassQuery = From student In school.students From c In student.classes _
Select student.firstname, student.lastname, c.classname
For Each student In studclassQuery.OrderBy(Function(s) s.lastname & s.firstname)
Console.WriteLine(String.Format("Student {0},{1}: {2}", _
student.lastname.TrimEnd, student.firstname.Trim, student.classname))
Next
End Sub 
 
Những kết quả  với:
Student Doe,John: European History
Student Doe,John: Art History
Student Robin,Stacey: American History
Student Smith,Jane: American History
Student Smith,Jane: French
Student Williams,Bill: European History
Student Williams,Bill: French
Student Williams,Bill: Computers 101

Chúc Bạn Thành Công.
DangTrung.

Thứ Ba, 3 tháng 2, 2009

Sử dụng Stored Procedures cho Insert, Update & Delete trong Entity Data Model

Trong hướng dẫn này, làm thế nào để sử dụng Stored Procedures được lưu giữ từ cơ sở dữ liệu của bạn đến một entity trong Entity Data Model của bạn.

Hướng dẫn cơ bản làm việc với ba thủ tục đơn giản được lưu trữ mà tôi được bổ sung vào cơ sở dữ liệu AdventureWorksLT: InsertCustomer, UpdateCustomer và DeleteCustomer và không liên quan đến dữ liệu liên quan. Xem dưới cùng của bài cho TSQL để tạo ra các thủ tục này.
  • Tạo một Entity Data Model các dữ liệu mẫu Entity Data Model Wizard (để được hỗ trợ với các bước này, xem Tạo Entity Data Model)

  • Nhấp chuột phải vào thực thể khách hàng và chọn "Stored Procedure Mapping" từ trình đơn
  • Ở đây bạn sẽ thấy tùy chọn để lập bản đồ một chức năng Insert, một chức năng cập nhật và chức năng một Xóa.

Lưu ý: Thủ tục Mappings lưu trữ là một trong hai trang của xem chi tiết bản đồ Biểu tượng trên cùng bên trái sẽ đưa bạn đến Mappings table cho thực thể..)
  • Sử dụng trình đơn thả xuống cho bạn chọn Insert Function, chọn các thủ tục InsertCustomer.

Sau khi lựa chọn phù hợp với thủ tục được lưu trữ, bạn sẽ có khả năng bản đồ các thông số cần thiết cho các thủ tục lưu trữ đến các tính chất của thực thể. Theo mặc định, tên phù hợp sẽ được ánh xạ với nhau rồi. Các lợi ích của việc lập bản đồ các tham số thủ tục lưu trữ các tài sản thực thể là bạn sẽ không cần phải viết code để nuôi các mảnh xác của dữ liệu đến các thủ tục lưu trữ; Entity Framework sẽ sử dụng các bản đồ để làm nhiệm vụ đó.
  • Loại NewCustomerID tài sản vào các cột Kết quả Bindings và móc nó lên đến tài sản ID khách hàng.
Các thủ tục được lưu trữ sẽ trả về ID mới cho dòng chèn. Lập bản đồ này bảo đảm rằng các mã mới được đẩy lùi vào thực thể mà người dùng đang làm việc với.

  • Cập nhật bản đồ và Xóa chức năng. Như với chức năng chèn, công cụ sẽ tự động kết hợp bản đồ cột và những tài sản.
Khi tất cả các thủ tục được lưu giữ được ánh xạ, các chi tiết bản đồ sẽ như thế này:


Hai lưu ý quan trọng về việc sử dụng ánh xạ chức năng.

1) ánh xạ chức năng yêu cầu bạn đồ cả ba của funcitons, Insert, Update và Delete. Nếu bạn chỉ có một hoặc hai bản đồ của các chức năng, mô hình sẽ không xác nhận.

2) Đối tượng với đề tiết được Entity Tham khảo (ví dụ như SalesOrderHeader.Customer là một thực thể tham khảo, trong khi SalesOrderHeader.SalesOrderDetails Bộ sưu tập là một thực thể), sẽ có yêu cầu đặc biệt để lập bản đồ các phím nước ngoài. Trong một Chèn hoặc thủ tục cập nhật, điều này là khá thẳng về phía trước, nhưng trong một thủ tục Xoá, nó có thể cần thêm các tham số cho các tyou tha thủ tục không sử dụng trong thủ tục chính nó, nhưng chỉ có để đáp ứng các quy tắc của mô hình. Xem bài đăng blog cho thêm thông tin: Xóa Procs Lưu trữ và Navigations Trong liệu Entity Mẫu

Sử dụng thủ tục được lưu trữ mới

Bây giờ mà các thủ tục được lưu giữ đã được ánh xạ, nó không phải là cần thiết để gọi trực tiếp trong mã. Bất kỳ SaveChanges thời gian được gọi là, Entity Framework sẽ sử dụng bản đồ của bạn được lưu trữ các thủ tục cần thiết cho bất cứ chèn, cập nhật và xóa.

INSERT

USE [AdventureWorksLT]

CREATE Procedure [dbo].[InsertCustomer]
@NameStyle bit,
@Title nvarchar(8),
@FirstName nvarchar(50),
@MiddleName nvarchar(50),
@LastName nvarchar(50),
@Suffix nvarchar(10),
@CompanyName nvarchar(128),
@SalesPerson nvarchar(256),
@EmailAddress nvarchar(50),
@Phone nvarchar(25),
@PasswordHash varchar(128),
@PasswordSalt varchar(10),
@ModifiedDate datetime,
@Inactive bit
AS
INSERT INTO [AdventureWorksLT].[SalesLT].[Customer]
([NameStyle]
,[Title]
,[FirstName]
,[MiddleName]
,[LastName]
,[Suffix]
,[CompanyName]
,[SalesPerson]
,[EmailAddress]
,[Phone]
,[PasswordHash]
,[PasswordSalt]
,[ModifiedDate]
,[Inactive])
VALUES
(
@NameStyle,
@Title,
@FirstName ,
@MiddleName,
@LastName ,
@Suffix ,
@CompanyName ,
@SalesPerson ,
@EmailAddress,
@Phone,
@PasswordHash,
@PasswordSalt,
@ModifiedDate,
@Inactive )

select SCOPE_IDENTITY() as NewCustomerID

UPDATE
USE [AdventureWorksLT]

CREATE PROCEDURE [dbo].[UpdateCustomer]
@CustomerID int,
@NameStyle bit,
@Title nvarchar(8),
@FirstName nvarchar(50),
@MiddleName nvarchar(50),
@LastName nvarchar(50),
@Suffix nvarchar(10),
@CompanyName nvarchar(128),
@SalesPerson nvarchar(256),
@EmailAddress nvarchar(50),
@Phone nvarchar(25),
@PasswordHash varchar(128),
@PasswordSalt varchar(10),
@ModifiedDate datetime,
@Inactive bit
AS
UPDATE [AdventureWorksLT].[SalesLT].[Customer]
SET [NameStyle] = @NameStyle,
[Title] = @Title,
[FirstName] = @FirstName,
[MiddleName] = @MiddleName,
[LastName] = @LastName,
[Suffix] = @Suffix,
[CompanyName] = @CompanyName,
[SalesPerson] = @SalesPerson,
[EmailAddress] = @EmailAddress,
[Phone] = @Phone,
[PasswordHash] = @PasswordHash,
[PasswordSalt] = @PasswordSalt,
[ModifiedDate] = @ModifiedDate,
[Inactive] = @Inactive
WHERE CustomerID=@CUstomerID


DELETE
USE [AdventureWorksLT]

CREATE PROCEDURE [dbo].[DeleteCustomer]
@CustomerID int
AS

DELETE FROM Customer
WHERE CustomerID=@CUstomerID
 
Chúc bạn thành công.
DangTrung. 

Thứ Hai, 2 tháng 2, 2009

Làm Thế Nào Để Tạo Được ADO.Net Entity Framework

Trong hướng dẫn này, bạn sẽ tạo ra một thực thể mới Mô hình dữ liệu bên trong một dự án Thư viện Class. Mô hình dữ liệu sẽ được xây dựng từ cơ sở dữ liệu AdventureWorksLT.

Dự án này có thể được sử dụng trong (Windows, Console, Web, other class libraries etc) bằng cách tham khảo dự án này.

Tạo một Class Library Project mới :
  • Chọn Project mới từ các tùy chọn File Menu
  • Chọn Project ưa thích của bạn căn cứ: e.g. Visual Basic hoặc C #
  • Chọn Class Thư viện
  • Thay đổi tên của ứng dụng trong hộp văn bản Tên để DataDevEDM
  • Nhấp OK
  • Thêm một khoản Entity Data Model

  • Trong Solution Explorer, nhấp chuột phải vào tên của dự án.
  • Nhấp vào Thêm vào menu ngữ cảnh mở ra.
  • Click vào New Item.
  • Trong hộp thoại Add New Item, nhấp vào ADO.NET Entity Data Model.
  • Thay đổi tên từ Model1.edmx để AWModel.edmx
  • Click vào nút Add
  • Trong Entity liệu Mẫu Tạo kích Wizard từ cơ sở dữ liệu, sau đó nhấn nút Next


Tạo một kết nối cơ sở dữ liệu cho các dữ liệu Entity Mẫu

Nếu bạn có một kết nối cơ sở dữ liệu đã được tạo ra trong Visual Studio, bỏ qua Xác định Nội dung của một dữ liệu Entity Mẫu
  • Trên Chọn trang kết nối dữ liệu của trình wizard, bấm vào nút kết nối mới.
  • Ở phía trên cửa sổ thuộc tính kết nối, bấm vào nút Change bên cạnh các nguồn dữ liệu
  • Chọn Microsoft SQL Server Cơ sở dữ liệu tập tin từ danh sách các nguồn dữ liệu, sau đó nhấn OK
  • Click vào nút Browse bên phải của tên tập tin cơ sở dữ liệu
  • Duyệt đến thư mục mà bạn đã lưu cơ sở dữ liệu AdventureWorksLT *.
  • Chọn AdventureWorksLT.mdf sau đó nhấn Open.
  • Ở dưới cùng của cửa sổ Connection Properties, nhấn OK
Xác định các nội dung của một dữ liệu Entity Mẫu
  • Chọn kết nối cơ sở dữ liệu từ thả xuống.
  • Ở dưới cùng của cửa sổ Data Entity Mẫu Wizard, thay đổi giá trị của thực thể thiết lập kết nối đến AWEntities sau đó bấm Next.
  • Trên trang tiếp theo, thay đổi Không gian Mẫu để AWModel.
  • Bàn kiểm tra, xem Thủ tục và lưu trữ. Điều này sẽ bao gồm tất cả các mặt hàng. Bạn có thể mở rộng các nút để chọn các bảng chỉ cụ thể, xem và lưu trữ các thủ tục mà bạn muốn.
  • Nhấp vào Kết thúc.
  • Lưu ý rằng trong thám hiểm giải pháp, một tập tin mới, AWModel.edmx đã được tạo.

Xem các mô hình

Click đúp vào tập tin AWModel.emx để mở các mô hình trong thiết kế Entity Data Model.


Chúc bạn thành công.

DangTrung.

Chủ Nhật, 1 tháng 2, 2009

ADO.NET Entity Framework Là Gì ?

The ADO.NET Entity Framework đơn giản hoá mã truy cập dữ liệu trong các ứng dụng bằng cách cho phép các nhà phát triển để tạo ra một mô hình tùy biến khái niệm cho các dữ liệu từ bất kỳ nguồn nào và dễ dàng đồ nó để yêu cầu kinh doanh.

The ADO.NET Entity Framework là cơ sở dữ liệu độc lập và xây dựng dựa trên một mô hình chuẩn cung cấp ADO.NET cho phép truy cập vào cơ sở dữ liệu của bên thứ ba thông qua việc sử dụng ADO.NET liệu cung cấp. Các nhà cung cấp của bên thứ ba đang có sẵn.


Khái Niệm Về ADO.NET Entity Framework

ADO.NET Entity Framework như giản đồ của các dữ liệu được lưu trữ trong cơ sở dữ liệu và trình bày giản đồ khái niệm ứng dụng của nó. Giản đồ này được ánh xạ từ cơ sỡ dữ liệu.

Những bất lợi của ADO.NET Entity Framework Nếu cơ sỡ dữ liệu thay đổi các quan hệ thì ADO.NET Entity sẽ không thay đổi theo, bạn phải update mới từ ADO.NET Entity đã có.

Mô hình này vượt qua mối quan hệ giữa các bản ghi là rất khác nhau từ các mô hình sử dụng trong các đối tượng ngôn ngữ lập trình theo định hướng, nơi mà các mối quan hệ của các tính năng của một đối tượng tiếp xúc như là thuộc tính của đối tượng và truy cập vào các bảng đi qua các mối quan hệ. Ngoài ra, việc sử dụng các truy vấn SQL diễn tả như ở đây, chỉ để xử lý cơ sở dữ liệu, giữ cho các ngôn ngữ lập trình luôn làm cho bất kỳ sự bảo đảm về hoạt động và biên dịch từ việc cung cấp thông tin về thời gian.

Các bản đồ của giản đồ vật lý định nghĩa như thế nào dữ liệu có cấu trúc và lưu trữ trên đĩa là công việc của hệ thống cơ sở dữ liệu và cơ chế khách hàng truy cập, dữ liệu được shielded như là cơ sở dữ liệu cho thấy nhiều dữ liệu trong cách xác định bởi giản đồ hợp lý của nó.

Kiến trúc của ADO.NET Entity Framework


Nguồn cung cấp dữ liệu cụ thể (Data source specific providers): trong đó tóm tắt các giao diện ADO.NET để kết nối với cơ sở dữ liệu khi lập trình đối với các khái nệm schema.

Cung cấp bản đồ (Map provider):  một cơ sở dữ liệu cụ thể mà nhà cung cấp dịch cây lệnh Entity SQL vào nguồn gốc một truy vấn SQL trong cơ sở dữ liệu. Nó bao gồm Store cụ thể, là thành phần chịu trách nhiệm dịch lệnh vào một Store cụ thể .

EDM phân tích cú pháp, lập và xem bản đồ (EDM parser and view mapping): với đặc tả SDL của mô hình dữ liệu và làm thế nào nó lên bản đồ mô hình quan hệ tiềm ẩn và cho phép lập trình trên các mô hình. Từ giản đồ quan hệ, nó tạo ra xem các dữ liệu tương ứng với các mô hình. Nó tập hợp thông tin từ nhiều bảng để tổng hợp chúng thành một thực thể, và chia tách một cập nhật cho một thực thể cập nhật nhiều vào bảng nào.

Truy vấn và cập nhật (Query and update pipeline): các quá trình truy vấn, các bộ lọc và cập nhật, được yêu cầu để chuyển chúng thành cây lệnh kinh điển mà sau đó được chuyển đổi thành truy vấn cụ thể của các cấp bản đồ.

Dịch vụ siêu dữ liệu (Metadata services):  trong đó xử lý tất cả các siêu dữ liệu liên quan đến các thực thể, mối quan hệ và ánh xạ.

Giao dịch (Transactions): để tích hợp với khả năng giao dịch của các store nằm bên dưới. Nếu store nằm bên dưới không hỗ trợ giao dịch, nó cần phải được thực hiện tại lớp này.

Ý tưởng lớp API (Conceptual layer API): trong thời gian đó cho thấy nhiều mô hình cho các lập trình mã hóa chống lại các khái niệm giản đồ. Nó theo mô hình ADO.NET của việc sử dụng các đối tượng kết nối để tham khảo các nhà cung cấp bản đồ, các đối tượng sử dụng lệnh để gửi các truy vấn, và trả lại EntityResultSets hoặc EntitySets có kết quả.

Ngắt kết nối các thành phần (Disconnected components): trong đó tại địa phương datasets cache và bộ thực thể để sử dụng ADO.NET Entity Framework trong một môi trường đôi khi kết nối.
  • Nhúng vào cơ sở dữ liệu (Embedded database): ADO.NET Entity Framework bao gồm một cơ sở dữ liệu nhúng nhẹ cho client-side caching và truy vấn các dữ liệu quan hệ.
Thiết kế các công cụ (Design tools): như là đồ Designer cũng được bao gồm với ADO.NET Entity Framework mà đơn giản hoá việc làm trên bản đồ một giản đồ khái niệm để các giản đồ quan hệ trong đó nêu rõ tính chất của một loại thực thể tương ứng với những bảng trong cơ sở dữ liệu.

Lớp Lập trình (Programming layers,): trong đó cho thấy nhiều các EDM như lập trình xây dựng có thể được tiêu thụ bởi các ngôn ngữ lập trình.
  • Dịch vụ đối tượng (Object services) : tự động tạo ra các mã cho các lớp học CLR mà phơi bày các tài sản như một thực thể, do đó cho phép các thực thể như instantiation đối tượng .NET .
  • Dịch vụ Web (Web services) : trong đó vạch trần thực thể như các dịch vụ web.
Cao cấp dịch vụ (High level services): như báo cáo dịch vụ làm việc trên các thực thể hơn là các dữ liệu quan hệ. 

DangTrung.