Hey there! Thanks for dropping by trungbq! Take a look around and grab the RSS feed lớn stay updated. See you around!

Tổng quan

Trong phần trước, tôi đã reviews sơ qua về WCF RIA Services thông qua 1 ví dụ tựa “Hello World”. Nó có lẽ thừa dễ dàng và đơn giản cùng thiết yếu sử dụng vào vận dụng thực tế. Đối cùng với áp dụng thực tế, bạn phải biết phương pháp làm cho cầm làm sao để tùy chỉnh services cùng thực hiện nó sinh sống client ra làm sao. Trong bài viết này, tôi đã đi sâu hơn một chút vào quá trình truy tìm vấn dữ liệu tự client. Tôi cũng trở nên lướt qua về quy ước khắc tên cách thức được khái niệm trong domain name service, cũng như biện pháp làm cụ làm sao để gia công điều đó áp dụng attribute nắm do theo đúng quy ước. Tôi cũng trở thành chỉ dẫn bí quyết sử dụng những tầm nã vấn tự client. Cuối thuộc, tôi đã nói về kiểu cách thực hiện tài liệu từ bỏ các nguồn dữ liệu không giống Entity Framework.Quý khách hàng đang xem: Wcf ria là gì

Để bước đầu chúng ta nên thực hiện công dụng sẽ có tác dụng được tự phần trước. Quý Khách có thể download tại đây (khác).quý khách hàng vẫn xem: Dịch vụ wcf ria là gì?

Download code hoàn chỉnh của nội dung bài viết này tại đây (khác).

Bạn đang xem: Wcf ria là gì

Cách 1: Thêm tđắm đuối số mang đến câu truy tìm vấn

Trong nội dung bài viết trước, sau khi được tạo nên xong xuôi, trong tên miền service bao gồm một phương thức tầm nã vấn như thế này:

1: public IQueryable GetTasks() 2: 3: return this.ObjectContext.Tasks; 4: Câu truy vấn này trả về tất cả các Task trong database dưới dạng một IQueryable. Nếu bạn có nhu cầu gồm các truy nã vấn rõ ràng hơn chđọng chưa hẳn trả về tất cả những chiếc, bạn cũng có thể thêm những cách làm truy vấn ví dụ vào domain service cùng nó sẽ tiến hành trường đoản cú xuất hiện nghỉ ngơi client side. Quý Khách cũng rất có thể chọn kiểu dáng trả về làIEnumerable, mà lại giả dụ các provider bên dưới (Entity Framework hoặc LINQ to SQL) trả vềIQueryable, bạn cũng phải trả về kiểu IQueryable cố gắng bởi vì đưa mẫu mã.

Một ngôi trường vừa lòng hay gặp mặt là áp dụng của chúng ta được cho phép người tiêu dùng rước các Task trong một khoảng thời gian. Để cung ứng điều ấy, chúng ta thêm cách làm sau vào domain name service

public IQueryable GetTasksByStartDate( DateTime lowerDateTimeInclusive, DateTime upperDateTimeInclusive){ return this.ObjectContext.Tasks.Where( t => t.StartDate >= lowerDateTimeInclusive sầu && t.StartDate

Bước 2: Thêm giao diện để tiến hành các tróc nã vấn

Để call các truy hỏi vấn kiếm tìm kiếm cầm do gọi GetTasks cơ hội Page_Load, bạn phải chỉnh sửa giao diện một tí. Mngơi nghỉ trang MainPage.xaml, sút form size của DataGrid nhằm chừa nơi trống phân phối hai TextBox với một Button nhỏng dưới đây


*

Đặt thương hiệu đến TextBox trước tiên là lowerDate, TextBox máy hai là upperDate và Button là searchButton. Nhấp lưu ban vào button nhằm thêm hàm cách xử trí sự khiếu nại.

Cách 3: Thực thi câu truy vấn vấn từ client trải qua DomainContext

Nlỗi đã reviews trong phần 1, DomainContext là bản sao của DomainService được trường đoản cú hiện ra làm việc client side. Trong vận dụng này, khớp ứng cùng với tên miền service TasksDomainService ngơi nghỉ server side, domain name context làm việc client side là TasksDomainContext. Nó hỗ trợ năng lực Gọi bất đồng hóa với gửi những biến đổi trên entity (được tiến hành ngơi nghỉ client) mang đến server side. DomainContext đích thực là khối óc của WCF RIA Service ở phía client. Bất cứ bao giờ chúng ta tiến hành truy hỏi vấn để lấy những entity từ bỏ server thông qua tên miền context, nó đều cất giữ links đến những entity đó với cả các biến hóa bên trên những entity đó. Vì vậy, nếu như khách hàng sửa đổi những đối tượng kia, nó biết bao gồm sự đổi khác cùng hoàn toàn có thể gửi ngược lại hệ thống khi chúng ta quyết định update phần đông chuyển đổi đó. Tôi đã nói nhiều hơn thế nữa vào nội dung bài viết tiếp nối. Còn vào bài viết này, họ triệu tập vào Việc đem dữ liệu.

Thêm đoạn code sau vào hàm cách xử trí sự kiện button searchButton

private void searchButton_Click(object sender, RoutedEventArgs e) DateTime lowerDateVal; DateTime upperDateVal; GetDates(out lowerDateVal, out upperDateVal); TasksDomainContext context = new TasksDomainContext(); taskDataGrid.ItemsSource = context.Tasks; EntityQuery query = context.GetTasksByStartDateQuery(lowerDateVal, upperDateVal); LoadOperation loadOp = context.Load(query);Đoạn code đặc trưng sinh sống đấy là bốn dòng cuối. Để Điện thoại tư vấn cho server side, bạn cần một instance của domain context. Trong vận dụng thực tiễn, bạn phải duy trì domain context lại vị sẽ là khu vực giữ các chuyển đổi bên trên đối tượng người sử dụng để update. Đôi khi, các bạn sẽ knhì báo nó vào view Mã Sản Phẩm hoặc phạm vi áp dụng. Tôi sẽ phân tích rộng trong phần 4 của loạt bài bác này.

Domain context bao gồm property là 1 collection những entity được trả về do những phương thức tầm nã vấn sinh sống tên miền service. Trong ví dụ này, tên miền service chỉ kết xuất một collection các Task. Để ý rằng cái lệnh gán ItemsSource của DataGrid bởi context.Tasks trước khi Điện thoại tư vấn ngẫu nhiên tróc nã vấn làm sao. Vì khi chúng ta truy vấn thông qua tên miền context, câu truy nã vấn được hotline bất nhất quán và đã sửa chữa ngôn từ của collection ngay lúc nhận thấy dữ liệu trả về tự hệ thống. Collection này (context.Tasks) lúc này eventINotifyCollectionChanged với đã raise sự kiện để DataGrid từ update lại lúc cảm nhận event này.

Đây tựa như hầu hết gì xảy ra với DomainDataSource được áp dụng vào XAML ở nội dung bài viết trước.

Xem thêm: Phần Mềm Msi Afterburner Là Gì, Msi Afterburner Là Gì

Bước 4: Thêm câu truy vấn vấn trả về một entity duy nhất

Để trả về một entity cụ bởi vì một collection bạn chỉ việc tư tưởng nó trên domain name service. Một cách tiến hành truy tìm vấn tương ứng sẽ tiến hành tạo thành trong tên miền context sau khi biên dịch.

public Task GetTask(int taskId) return this.ObjectContext.Tasks.FirstOrDefault(t => t.TaskId == taskId);

Quy ước viết tên pmùi hương thức

Đây là 1 xu hướng bắt đầu nổi vào trở nên tân tiến .NET – làm giảm lượng thông số kỹ thuật vào code dựa vào một số trong những quy ước khắc tên. Có một vài tiền tố WCF RIA Services nhận biết được với những cách thức update, thêm new, xóa như UpdateTask, InsertTask, DeleteTask (cùng các chi phí tố khác ví như Change, Modify, Add, Create, Remove).

quý khách hàng cũng rất có thể cấu hình bằng phương pháp áp dụng các attribute. lấy ví dụ như cùng với các câu tróc nã vấn, bạn sử dụng attribute . Những cách làm bao gồm giao diện trả về là IQueryableIEnumerable hoặc một entity cũng rất được xác định ví dụ là một phương thức truy tìm vấn. trong những ưu thế của việc thực hiện atrribute là nó cung cấp thêm một vài ba vật dụng nhỏng số lượng phần tử về tối nhiều trong công dụng trả về.

quý khách hoàn toàn có thể bài viết liên quan một số trong những quy ước đặt tên trên đây.

Tùy chỉnh Domain Service

quý khách hàng không thích sử dụng Entity Framework? Một chắt lọc khác là LINQ lớn SQL. Theo chủ ý cá nhân, tôi đề nghị bạn nên sử dụng Entity Framework nếu như khách hàng ban đầu một dự án công trình bắt đầu. Nó đích thực có tác dụng và dường như sẽ là phương thức truy vấn xuất tài liệu từ bỏ .NET giỏi được áp dụng lâu bền hơn. LINQ to Squốc lộ cũng rất được hỗ trợ trải qua WCF RIA Services Toolkit nếu như bạn thực sự muốn áp dụng nó.

Để làm cho điều đó, chúng ta chỉ việc thừa kế tên miền service của bạn thẳng tự class DomainService, thế bởi thừa kế từ LinqToEntitiesDomainService. Trong cửa sổ Add New Domain Service Class (Add > New Item > Domain Data Service) chỉ việc lựa chọn “empty tên miền service class” trong Available DataContext/ObjectContext. Sau kia trường đoản cú khái niệm các entity, trả về IEnumerable giả dụ những nguồn dữ liệu dưới ko cung ứng IQueryable và có tác dụng bất kể điều gì bạn cần trong những cách thức trên nguồn tài liệu tương xứng.