• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

LINQ là gì ? - Khái niệm LINQ

Các bài viết hướng dẫn và tham khảo chung, không thuộc ngôn ngữ nào

Điều hành viên: vietluyen

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

LINQ là gì ? - Khái niệm LINQ

Gửi bàigửi bởi truongphu » T.Ba 08/12/2009 8:18 am

Tên bài viết: LINQ là gì ? - Khái niệm LINQ
Tác giả: Sưu tầm,(Nguyễn Hồng Lam)
Cấp độ bài viết: Chưa đánh giá
Tóm tắt: Khái niệm LINQ



Ghi chú: tạm để đây vài ngày cho khỏi trống

http://my.opera.com/nguyenhonglam/blog/linq-la-gi
LinqToAdoNetOverview.JPG
LinqToAdoNetOverview.JPG (20.59 KiB) Đã xem 12729 lần


-Bên Java có Hibernate thì LINQ cũng tương tự như vậy, nó đưa ra khả năng lập trình mới trong .NET kiểu truy vấn :Sql DB, Objects và Xml
-Giải pháp lập trình hợp nhất, đem đến khả năng truy vấn dữ liệu theo cú pháp SQL trực tiếp trong C# hay VB.NET, áp dụng cho tất cả các dạng dữ liệu từ đối tượng đến CSDL quan hệ và XML.


Xử lý thông tin hay dữ liệu là nhiệm vụ quan trọng nhất của bất kỳ phần mềm nào và một trong những trở ngại chính mà các nhà phát triển hiện nay phải đối mặt là khác biệt giữa ngôn ngữ lập trình hướng đối tượng và ngôn ngữ truy vấn dữ liệu, vấn đề càng phức tạp hơn với sự xuất hiện của XML (eXtensible Markup Language - ngôn ngữ đánh dấu mở rộng).

Hiện tại, cách phổ biến nhất để ứng dụng lấy dữ liệu từ các hệ cơ sở dữ liệu (CSDL) là sử dụng SQL (Structure Query Language - ngôn ngữ truy vấn cấu trúc). SQL có cú pháp rất khác với những ngôn ngữ lập trình phổ dụng như C# và VB.NET, do vậy lập trình viên phải nhọc công "hàn gắn" hai thực thể khác biệt này với nhau trong mỗi dự án phần mềm.

Một vấn đề khác với SQL là nó chỉ dùng để truy vấn dữ liệu trong các CSDL dạng quan hệ. Nếu muốn truy cập dữ liệu XML hay dạng khác (như trang HTML, email...), nhà phát triển lại phải sử dụng cú pháp truy vấn khác (XPath/XQuery).



++++++++++++++++++++++++++++++++++++++++++++++

NOTE:

LINQPad cho phép bạn tác động vấn tin các cơ sở dử liệu SQL với 1 ngôn ngữ hiện đại là: LINQ. Nói lời tạm biệt tới SQL Management Studio. LINQPad hổ trợ mọi thứ trên C# 3.0 và Framewrok 3.5 chẳn hạn như :

1. LINQ to SQL
2. LINQ to Objects
3. LINQ to XML

LINQPad cũng là 1 cách tuyệt vời để học LINQ, nó "ra đời" với 200 ví dụ từ cuốn sách C# 3.0 in a Nutshell. Học được sức mạnh của LINQ và lập trình chức năng.

LINQPad không chỉ là công cụ truy vấn LINQ, nó cũng là môi trường tích hợp đoạn mã mẫu (code snippet), thực thi ngay tức khắc bất kỳ các biểu thức hoặc tập hợp các câu lệnh C# 3.0 hoặc VB 9 .

LINQPad là miễn phí và không đòi hỏi cài đặt; chỉ tải về và chạy.
Download tại: http://www.linqpad.net/
Theo Internet or Some Document


++++++++++++++++++++++++++++++++++++++++++++++



Để giảm gánh nặng thao tác trên nhiều ngôn ngữ khác nhau và cải thiện năng suất lập trình, Microsoft đã phát triển giải pháp tích hợp dữ liệu cho .NET Framework có tên gọi là LINQ (Language Integrated Query), đây là thư viện mở rộng cho các ngôn ngữ lập trình C# và Visual Basic.NET (có thể mở rộng cho các ngôn ngữ khác) cung cấp khả năng truy vấn trực tiếp dữ liệu đối tượng, CSDL và XML.

Truy vấn dữ liệu đối tượng trong bộ nhớ

Dữ liệu cần phải đổ vào bộ nhớ để xử lý, nhưng một khi tách khỏi nơi gốc của nó thì khả năng truy vấn rất kém. Bạn có thể dễ dàng truy vấn thông tin khách hàng móc nối với thông tin đơn hàng của họ từ CSDL SQL Server nhưng không dễ gì thực hiện tương tự với thông tin trong bộ nhớ. Trong môi trường .NET, thông tin (trong bộ nhớ) thường được thể hiện ở dạng các đối tượng và trước LINQ, không có cách nào để móc nối các đối tượng hay thực hiện bất kỳ thao tác truy vấn nào. LINQ chính là giải pháp cho vấn đề này.


Với Microsoft .NET platform, ngôn ngữ hỗ trợ chính đó chính là C# và VB.NET. Những người lập trình viên họ thường gặp rắc rối, và cảm thấy khó chịu với việc truy cập dữ liệu ở những nguồn khác nhau. Đặc biệt là 2 loại dữ liệu XML và CSDL.Với CSDL là đông đảo nhất về dữ liệu lưu trữ.
Các vấn đề về truy suất dữ liệu như sau:
1 - Chúng ta không lập trình tương tác với CSDL tại cấp độ native language. Vì thế lỗi thường khó phát hiện rõ. Khó khăn trong việc quản lý lỗi xảy ra.
2 - Kiểu dữ liệu khác nhau trong mỗi nguồn dữ liệu ở XML và CSDL. Đặc biệt date và time.
Chính các nhà phát triển ở Microsoft đưa ra 1 nền tảng mới trong việc truy vấn dữ liệu ở bất kể các nguồn khác nhau(Object, XML, CSDL). Đó là LINQ, đây là công nghệ mà hổ trợ cơ chế truy vấn dữ liệu ở tất cả các kiểu. Những kiểu nay bao gồm mãng(List, Vector), XML, CSDL và hơn thế nữa.
Điều quan trọng nhất, LINQ là tất cả về truy vấn, kết quả sau khi truy vấn có thể là tập hợp các đối tượng cùng loại, có thể là 1 đối tượng đơn, có thể là tập hợp con của các field từ 1 đối tượng. Kết quả trả về của LINQ người ta gọi là sequence.Hầu hết sequence là IEnumerable<T> với T là KDL của những đối tượng trong sequence.
LINQ nó sẽ cung cấp cách duy nhất để truy cập dữ liệu từ bất kể nguồn dữ liệu nào với cú pháp giống nhau.


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Làm việc với LINQ trên Visual Studio 2008

Gửi bàigửi bởi truongphu » T.Ba 08/12/2009 8:23 am

http://www.3c.com.vn/Story/vn/hotrokhac ... 35000.html


LINQ và Visual Studio 2008 IDE khiến cho việc lấy dữ liệu trở nên khá dễ dàng từ một cơ sở dữ liệu SQL Server. Visual Studio bao gồm một mục khung mẫu có tên gọi LINQ to SQL Classes mà bạn có thể thêm vào trong dự án.

O/R Designer

LINQ và Visual Studio 2008 IDE khiến cho việc lấy dữ liệu trở nên khá dễ dàng từ một cơ sở dữ liệu SQL Server. Visual Studio bao gồm một mục khung mẫu có tên gọi LINQ to SQL Classes mà bạn có thể thêm vào trong dự án. Một tài nguyên dbml được tạo ra khi bạn thêm vào kiểu mục này với một tên mặc định (mà bạn có thể thay đổi) của DataClasses1.dbml.

Khi mục đó được bổ sung thì ô O/R Designer sẽ được mở ra bên trong Visual Studio. Điều này sẽ cho phép bạn kéo và thả các mục cơ sở dữ liệu (bảng, xem, thủ tục lưu trữ) tới O/R Designer. O/R Designer tạo ra tập tin dbml, tập tin này sẽ cung cấp kết nối giữa các lớp LINQ to SQL Classes và các đối tượng cơ sở dữ liệu. O/R Designer đồng thời cũng tạo ra DataContext và các lớp thực thể.

Có hai khu vực chính bên trong O/R Designer là Entities và Methods. Khu vực chính của cùng thiết kế dành cho các thực thể như Tables và Viewa, cùng với sự phân cấp và mọi thứ có liên quan. Ô Methods bao gồm các thủ tục và chức năng được lưu trữ đã được nối kết tới các phương pháp của lớp DataContext. O/R Designer hiện thời hỗ trợ SQL Server 2000, SQL Server 2005 và SQL Express Edition.

Trước đi đi sâu vào xem xét ví dụ, chúng ta hãy cùng tìm hiểu kĩ hơn về truy vấn LINQ.

Truy vấn

Bạn cần thực hiện ba bước để truy nhập dữ liệu thông qua LINQ: Thu thập nguồn dữ liệu, tạo các truy vấn và thực hiện truy vấn. Một truy vấn được dùng để định nghĩa xem dữ liệu nào đã được khôi phục từ nguồn dữ liệu. Ngoài ra, bạn có thể thao tác dữ liệu thông qua việc sắp xếp, nhóm và những thứ tương tự. Một truy vấn được lưu trữ trong một biến truy vấn và được khởi tạo với một biểu thức truy vấn.

Truy vấn có những cú pháp riêng, những cú pháp này mạnh giống với chuẩn SQL. Một biểu thức truy vấn có ba mệnh đề: from, where và select. Mệnh đề form định nghĩa nguồn dữ liệu; Mệnh đề select định nghĩa những cái quay trở lại; Và mệnh đề where (không bắt buộc) giúp bạn làm rõ hơn một tìm kiếm bao gồm chỉ các dữ liệu phù hợp với tiêu chuẩn nhất định.
Truy vấn sẽ không được thực hiện cho đến khi nó đã được truy nhập; Điều này giống như là hoãn lại quá trình thực hiện. Ví dụ tiếp theo sẽ cung cấp nhanh việc sử dụng truy vấn.

Ví dụ

Tạo một dự án trang web bao gồm một mục LINQ to SQL Classes, mục này kết nối tới cơ sở dữ liệu chuẩn Northwind trên SQL Server 2000. Một thực thể được tạo ra cho bảng Customers. O/R Designer tạo ra tập tin dbml đặt tên là DataClasses1.dbml.

Khi lớp DataContext được tạo ra trên bảng và thủ tục lưu trữ trên cơ sở dữ liệu Northwind, bạn có thể sử dụng lớp này trong đoạn mã khác. Khi sử dụng lớp DataContext được tạo, nó phải bao gồm tên với DataContext được bổ sung vào sau. Trong ví dụ này bạn phải sử dụng tên DataClasses1DataContext. (Visual Studio IntelliSense hỗ trợ đầy đủ LINQ và tất cả các lớp của nó, vì vậy bạn có thể dễ dàng tránh được lỗi cho gõ phím).

Tôi sử dụng ASP.NET WEB Form trong ví dụ sau:

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="LINQTest._Default" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" >
  4. <head runat="server">
  5. <title>LINQ Example</title></head>
  6. <body>
  7. <form id="frmLINQTest" runat="server">
  8. <div>
  9. <asp:GridView ID="gvCustomers" runat="server"></asp:GridView>
  10. </div></form></body></html>


Web Form có chứa một trường hợp của điều khiển GridView; Điều khiển này hiển thị dữ liệu thông qua LINQ. Đoạn mã được đặt bên trong sự kiện Page_Load, vì vậy dữ liệu sẽ được tải vào khi bạn mở trang web.

Bước đầu tiên bạn sẽ tạo ra một thể hiện của lớp DataContext. Điều này sẽ cung cấp sự truy nhập cơ sở dữ liệu, vì vậy bạn có thể truy nhập vào bảng của nó như một thuộc tính của lớp DataContext. Ngay khi lớp DataContext được tạo ra thì bạn có thể lấy dữ liệu từ đây thông qua một truy vấn.

Đoạn mã bao gồm một truy vấn kéo mọi bản ghi dữ liệu và các cột từ bảng Customers. Dữ liệu được sắp xếp bởi cột thứ hai và truy vấn được thực hiện khi nó tác động lên điều khiển GridView trên trang.

  1. protected void Page_Load(object sender, EventArgs e) {
  2. DataClasses1DataContext db = new DataClasses1DataContext();
  3. var customers = from p in db.Customers
  4. orderby 1
  5. select p;
  6. gvCustomers.DataSource = customers;
  7. gvCustomers.DataBind();
  8. }


Đây là đoạn mã tương ứng trên Visual Basic:

  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2. Dim db As DataClasses1DataContext = New DataClasses1DataContext()
  3. Dim customers As Object
  4. customers = From p In db.Customers Order By 1 Select p
  5. gvCustomers.DataSource = customers
  6. gvCustomers.DataBind()
  7. End Sub


Khi tải trang web, mọi dữ liệu từ bảng Customers sẽ được hiển thị trên điều khiển GridView.

Như trong ví dụ thì bạn có thể dễ dàng gọi thủ tục lưu trữ trên SQL Server như là một phương pháp của đối tượng DataContext. Những kết quả của phương pháp này - thủ tục lưu trữ - có thể được dùng chứa một điều khiển dữ liệu tương tự như điều khiển mà trước đó sử dụng GridView, như trong đoạn mã tiếp theo sau đây:

  1. protected void Page_Load(object sender, EventArgs e) {
  2. DataClasses1DataContext db = new DataClasses1DataContext();
  3. var top_customers = db.Ten_Most_Expensive_Products();
  4. gvCustomers.DataSource = top_customers;
  5. gvCustomers.DataBind();
  6. }


Đây là đoạn mã tương ứng trên Visual Basic:

  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2. Dim db As DataClasses1DataContext = New DataClasses1DataContext()
  3. Dim customers As Object
  4. customers = db.Ten_Most_Expensive_Products()
  5. gvCustomers.DataSource = customers
  6. gvCustomers.DataBind()
  7. End Sub


Những ví dụ đơn giản này đã biểu thị cú pháp truy vấn và cách sử dụng O/R Designer như thế nào trên Visual Studio 2008. LINQ cho phép bạn thao tác cập nhật, xóa, thêm (update, delete, add) và đọc dữ liệu.


Theo Techrepublic
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Basic LINQ to SQL

Gửi bàigửi bởi truongphu » T.Ba 08/12/2009 8:34 am

gauto988 06-11-2008, 06:34
http://codeprovn.com/forums/viewtopic.php?f=21&t=1239

LINQ là công nghệ mới mà microsoft trình làng trong visual 2008..LINQ là 1 bước tiến mới trong cách thức truy xuất và làm việc với XML, database(mới chỉ hỗ trợ MS-SQL), và Object dựa trên 1 cú pháp duy nhất, các câu lệnh LINQ gần tương tự câu lệnh SQL
Sau đây mình xin giới thiệu các bước cơ bản để tạo 1 ứng dụng LINQ to SQL
Đầu tiên các bạn tạo 1 application như sau (bao gồm Form và 1 DataGridView có name là Products):

Bước 1 : Ở Solution Explorer  chọn Project của mình  chọn “add”  “New Item”  Chọn “LINQ to SQL Classes” bạn change name thành “Northwind.dbml”  nhấn nút “Add”
Bước 2 : sau khi tạo Northwind.dbml, khung thiết kế cho Northwind.dbml được hiển thị,
Bạn vào View Server Explorer (Ctrl + W,L) bạn tạo kết nối đến CSDL Northwind và bắt đầu kéo các bảng từ Server Explorer vào khung design của Northwind.dbml (làm tương tự như ADO trong visual 2005). Ở đây mình chỉ kéo 2 bảng là Products và Suppliers
untitled.JPG

Bước 3 : sau khi kéo các bảng vào, bạn nhớ nhấn Ctrl + S để lưu các thiết lập mình vừa thiết kế
Khi bạn kéo các bảng vào như thế, visual 2008 tự động sinh ra cho bạn 3 classes:
- Class Product bao gồm các properties get – set các trường của bảng Products trong CSDL Northwind
- Class Supplier bao gồm các properties get – set các trường của bảng Suppliers trong CSDL Northwind
- Class NorthwindDataContext Class này được thừa kế từ class System.Data.Linq.DataContext chịu trách nhiệm dựa vào các mô tả của 2 class Product và Supplier để thao tác với CSDL

Bước 4 bạn bắt đầu hưởng thành quả đầu tiên và đơn giản nhất ^^!!
Trong sự kiện Form_Load bạn viết như sau :

private void Form1_Load(object sender, EventArgs e)

Mã: Chọn hết

{
    NorthwindDataContext Context = new NorthwindDataContext();
    this.Products.DataSource = Context.Products;
}

untitled2.JPG


SELECT bằng LINQ
Một số câu lệnh select đơn giản với LINQ :
Vẫn trong sự kiện Form_Load
- Câu lệnh Select với điều kiện ProductID > 30;

Mã: Chọn hết

NorthwindDataContext Context = new NorthwindDataContext();
IEnumerable<Product> AllProducts = from c in Context.Products where c.ProductID > 30 select c;
this.Products.DataSource = AllProducts;

ở đây ‘c’ đóng vai trò như con trỏ, chạy qua từng bản ghi trong Products, nếu ProductID > 30 nó sẽ được ghi nhận, nếu < 30 nó sẽ bỏ qua
- Câu lệnh Select với điều kiện ProductID > 30 và ProductID có chứa kí tự ‘C’;

Mã: Chọn hết

NorthwindDataContext Context = new NorthwindDataContext();
            IEnumerable<Product> AllProducts = from c in Context.Products where (c.ProductID > 30 && c.ProductName.Contains("C")) select c;
            this.Products.DataSource = AllProducts;


Ở đây nếu bạn chú ý:
c.ProductName.Contains("C")thì chương trình chạy ngon lành
nhưng :
c.ProductName.Contains(‘C’)thì chương trình chạy đến: this.Products.DataSource = AllProducts; thì báo lỗi, có lẽ là 1 thiếu sót của microsoft

Câu lệnh Select join giữa 2 bảng Products và Suppliers:

Mã: Chọn hết

NorthwindDataContext Context = new NorthwindDataContext();

  var results = from c in Context.Products join d in Context.Suppliers on c.SupplierID equals d.SupplierID select new { c.ProductID,c.ProductName,d.CompanyName,d.ContactName};

  this.Products.DataSource = results;


Notes :“var results” Từ khóa var Cho phép bạn khai báo 1 biến mà không cần biết nó thuộc loại biến nào, bạn không phải nhọc công : int a = 5; string b=’”LINQ”; mà chỉ cần var;
Khi bạn khai báo var num = 5; thì biến num tự động được hiểu là kiểu int, Nó rất hữu dụng khi bạn ko rõ kiểu trả về là kiểu gì
Như trường hợp trên, câu lệnh:
from c in Context.Products join d in Context.Suppliers on c.SupplierID equals d.SupplierID select new { c.ProductID,c.ProductName,d.CompanyName,d.ContactName};

mình không xác định được kiểu trả về là kiểu gì thế nên cứ ‘var’ ^^!!
Cơ chế hoạt động của câu lệnh trên tương tự câu lệnh inner join trong SQL, chắc các bạn đã biết

Insert bằng LINQ:

Mã: Chọn hết

  Product NewProduct = new Product();
            NewProduct.ProductName = "CodeProvn";
            NewProduct.SupplierID = 1;
            NewProduct.CategoryID = 1;
            NewProduct.QuantityPerUnit = "C# LINQ";
            NewProduct.UnitPrice = 18000;
            NewProduct.UnitsInStock = 20;
            NewProduct.UnitsOnOrder = 20;
            NewProduct.ReorderLevel = 10;
            NewProduct.Discontinued = false;
            NorthwindDataContext Context = new NorthwindDataContext();
            Context.Products.InsertOnSubmit(NewProduct);
            Context.SubmitChanges();

Delete bằng LINQ:
Trường hợp 1 : Delete nhiều bản ghi cùng 1 lúc :

Mã: Chọn hết

          NorthwindDataContext Context = new NorthwindDataContext();
          IEnumerable<Product> Products = from c in Context.Products where c.ProductID > 50 select c;
              Context.Products.DeleteAllOnSubmit(Products);
              Context.SubmitChanges();

Products là các bản ghi mà bạn muốn delete, sau đó bạn dùng Method DeleteAllOnSubmit để cùng 1 lúc delete hết các bản ghi này
Trường hợp 2 : Delete từng bản ghi :

Mã: Chọn hết

NorthwindDataContext Context = new NorthwindDataContext();
          IEnumerable<Product> Products = from c in Context.Products where c.ProductID > 50 select c;
          foreach (Product product in Products)
          {
              Context.Products.DeleteOnSubmit(product);
          }
              Context.SubmitChanges();

Update bằng LINQ :

Mã: Chọn hết

NorthwindDataContext Context = new NorthwindDataContext();
          IEnumerable<Product> Products = from c in Context.Products where c.ProductID > 50 select c;
          foreach (Product product in Products)
          {
              product.ProductName = "www.google.com.vn";
          }
          Context.SubmitChanges();


((khi dùng LINQ, bạn sẽ không cần quan tâm đến câu lệnh SQL, như bạn thấy đấy, mình thao tác với SQL đưa ra hiển thị mà không cần viết bất cứ một câu lệnh sql(select, update, insert), mọi thứ thao tác với CSDL như thao tác với object, ngoài ra LINQ to Object mới thật sự mạnh
bạn chỉ cần học 1 cú pháp LINQ để thao tác đồng thời với CSDL(SQL), Object, XML))
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

boy1234
Guru
Guru
Bài viết: 448
Ngày tham gia: T.Hai 13/10/2008 3:12 pm
Đến từ: Dĩ An - Bình Dương
Been thanked: 32 time

Re: LINQ là gì ? - Khái niệm LINQ

Gửi bàigửi bởi boy1234 » T.Ba 08/12/2009 5:32 pm

Trước đây em có làm 1 bài White Paper về LINQ TO SQL xin bổ sung 1 tí:

LINQ TO SQL

LINQ to SQL là một phiên bản hiện thực hóa của O/RM (object relational mapping) có bên trong .NET Framework bản “Orcas” (nay là .NET 3.5), nó cho phép bạn mô hình hóa một cơ sở dữ liệu dùng các lớp .NET. Sau đó bạn có thể truy vấn cơ sở dữ liệu (CSDL) dùng LINQ, cũng như cập nhật/thêm/xóa dữ liệu từ đó.

LINQ to SQL hỗ trợ đầy đủ transaction, view và các stored procedure (SP). Nó cũng cung cấp một cách dễ dàng để thêm khả năng kiểm tra tính hợp lệ của dữ liệu và các quy tắc vào trong mô hình dữ liệu của bạn.
Dạo này nghiện honda SS50

qhhqnavy
Thành viên tích cực
Thành viên tích cực
Bài viết: 102
Ngày tham gia: T.Bảy 26/02/2011 10:45 am
Đến từ: Hải Phòng City

Re: LINQ là gì ? - Khái niệm LINQ

Gửi bàigửi bởi qhhqnavy » T.Ba 05/04/2011 7:10 am

Cám ơn bác đã cho em khái niệm cơ bản về Linq nhé.
Em không học theo chính thống lên có nhiều khái niệm nắm cứ mơ hồ thế nào đó.
Thanks

vinhquyen
Bài viết: 4
Ngày tham gia: CN 28/11/2010 10:31 am

Re: LINQ là gì ? - Khái niệm LINQ

Gửi bàigửi bởi vinhquyen » T.Sáu 08/04/2011 12:29 pm

Cho em hỏi làm sao để tạo khóa ngoại trong cái này được ạ.Vì em tạo table trong cái Explore đó chứ không phải có ở sql ngoài kết nối.Em cảm ơn

kyluc_it
Bài viết: 1
Ngày tham gia: T.Bảy 31/12/2011 11:05 pm

Re: LINQ là gì ? - Khái niệm LINQ

Gửi bàigửi bởi kyluc_it » T.Bảy 31/12/2011 11:11 pm

Mình nhìn các ví dụ code của bạn thì mình hiểu, bạn cho mình hỏi lý thuyết 1 tý được k?
Cơ chế hoạt động của LINQ to SQL để giúp việc phát triển và quản lý source control dễ dàng là soa mình k hiu bạn àh?


Quay về “Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách