เทคโนโลยีอะโดเน็ต สุทธิ

เมื่อสถาปนิกสถาปัตยกรรมระดับ n ประเมินเทคโนโลยี รูปแบบ หรือกลยุทธ์ใหม่ พวกเขาตัดสินใจว่าจิ๊กซอว์ชิ้นใหม่นั้นจะเข้ากับสถาปัตยกรรมได้อย่างไร หากมี Entity Framework การผสานรวมจะไม่ทำให้เกิดปัญหาใดๆ สามารถรวมเข้ากับสถาปัตยกรรมระดับ n เช่นเดียวกับสถาปัตยกรรมระดับเดียว

19.03.2009 15:32

คำถามที่พบบ่อยเกี่ยวกับ Entity Framework

การทำความเข้าใจการสร้างแบบจำลองเอนทิตี การแมปแบบจำลองดังกล่าวกับฐานข้อมูลเชิงสัมพันธ์ และการออกแบบแบบจำลองข้อมูลเอนทิตี (EDM) เป็นขั้นตอนแรกในการทำความเข้าใจ Entity Framework ฉันจะเริ่มบทความนี้โดยตอบคำถามเกี่ยวกับพื้นฐานของ Entity Framework รวมถึงคลาส ObjectContext แล้วตอบคำถามเกี่ยวกับเวลาและสถานที่ที่จะใช้ Entity Client กับ Entity SQL นอกจากนี้ ฉันวางแผนที่จะอธิบายความแตกต่างระหว่าง EntityClient และ Object Services และความหมายของการใช้แบบสอบถาม LINQ และ Entity SQL พร้อมกับบริการเหล่านี้

16.02.2009 15:15

ภาพรวมกรอบงานเอนทิตี ADO.NET

วางจำหน่ายแล้ว วิชวลสตูดิโอ 2008, ADO.NET แนะนำสถาปัตยกรรม Entity Framework ใหม่ อนุญาตให้นักพัฒนาเข้าถึงข้อมูลโดยใช้โมเดลวัตถุแทนโมเดลข้อมูลเชิงตรรกะหรือเชิงสัมพันธ์ Entity Framework ช่วยให้นามธรรม แผนภาพลอจิกข้อมูลลงในโมเดลแนวคิดและให้หลายวิธีในการโต้ตอบกับโมเดลแนวคิดผ่าน Object Services และผู้ให้บริการข้อมูลใหม่ที่เรียกว่า EntityClient บทความของเดือนนี้จะอธิบายว่า Entity Framework คืออะไร นำไปใช้กับแอปพลิเคชันอย่างไร และวิธีออกแบบและตั้งโปรแกรมโดยคำนึงถึงสิ่งนั้น

13.02.2009 18:44

การพัฒนาโมเดลข้อมูลเอนทิตีด้วย Entity Framework

Entity Framework คือ เทคโนโลยีใหม่ออกแบบมาสำหรับ ADO.NET ช่วยให้นักพัฒนาเห็นภาพข้อมูลโดยใช้แบบจำลองเชิงตรรกะมากกว่าแบบจำลองทางกายภาพ ซึ่งให้ความยืดหยุ่นในการพัฒนาบางอย่าง ในนิตยสารฉบับเดือนกรกฎาคม 2550 ภายใต้หัวข้อ "Data Points" เราได้ให้ ภาพรวมโดยละเอียดเทคโนโลยี Entity Framework (ควรเผยแพร่อย่างเป็นทางการในช่วงครึ่งแรกของปี 2551)

13.02.2009 18:33

การใช้คุณลักษณะเพื่อทำให้เป็นมาตรฐานและรับรองความถูกต้องของหน่วยงานธุรกิจ

ในการเขียนโปรแกรมองค์กร เมื่อออกแบบเลเยอร์การเข้าถึงข้อมูล มักมีคำถามเกี่ยวกับการทำงานกับวัตถุทางธุรกิจ (หน่วยงานธุรกิจ) เหล่านี้คือการโหลด / เปลี่ยนแปลง / บันทึกและย้ายระหว่างระดับ มีสองวิธีหลักในการทำเช่นนี้ - ใช้หน่วยงานธุรกิจของคุณหรือ มาตรฐานหมายถึง(ADO.NET มีวิธีที่สะดวกมากในการทำเช่นนี้) - โดยใช้ชุดข้อมูล

20.01.2007 03:54

ADO.NET: ภาพรวมเทคโนโลยี

โปรแกรมเมอร์หลายคนทำงานกับฐานข้อมูลบน แพลตฟอร์มไมโครซอฟต์สามารถชื่นชมความเรียบง่ายและความสะดวกสบายของเทคโนโลยี ADO - ActiveX Data Objects อินเทอร์เฟซที่ใช้งานง่ายและชุดอ็อบเจ็กต์แบบลอจิคัล ร่วมกับความสะดวกในการเขียนโปรแกรม ได้รับการยอมรับจากโปรแกรมเมอร์อย่างสมควร อย่างไรก็ตาม พร้อมกันกับแพลตฟอร์ม .NET ใหม่ Microsoft ยังแนะนำเครื่องมือการเข้าถึงฐานข้อมูลรุ่นใหม่ - ADO.NET

27.12.2006 01:32

การดำเนินการกับข้อมูลที่มีโครงสร้างแบบลำดับชั้น การพัฒนาแอปพลิเคชันแบบกระจายใน .NET

บทความนี้สาธิตเทคนิคสำหรับการอ่านและการเขียนชุดแถวแบบลำดับชั้นในแหล่งข้อมูล ในตัวอย่างโค้ดที่ให้ไว้ในบทความนี้ เพื่อเชื่อมต่อกับฐานข้อมูล Microsoft data SQL Serverหรือ Microsoft Desktop Engine (MSDE) ใช้ผู้ให้บริการที่มีการจัดการ SQL หากต้องการเชื่อมต่อกับแหล่งข้อมูลอื่นๆ ที่เป็นไปตาม OLEDB ให้ใช้ผู้ให้บริการที่มีการจัดการของ ADO

27.12.2006 01:26

การทำงานกับข้อมูลออฟไลน์ใน ADO.NET

ADO.NET ซึ่งแตกต่างจาก ADO และ OLE DB รุ่นก่อน ได้รับการออกแบบมาโดยเฉพาะสำหรับใช้ใน เว็บแอปพลิเคชันซึ่งไม่มีการเชื่อมต่อกับฐานข้อมูลอย่างถาวร งานดั้งเดิมกับข้อมูลใน ADO.NET สร้างขึ้นตามรูปแบบต่อไปนี้: การเชื่อมต่อจากนั้นจะถูกเปิดด้วยเมธอด Open ออบเจ็กต์ Command จะถูกสร้างขึ้นโดยห่อหุ้มคำสั่ง SQL ไว้ จะถูกดำเนินการ จากนั้นจึงปิดการเชื่อมต่อ วิธีการนี้ให้การเข้าถึงผลลัพธ์ของคิวรีแบบเธรด เหล่านั้น. เมื่ออ่านข้อมูลด้วย DataReader คุณจะไม่สามารถข้ามหลายระเบียนหรือย้อนกลับไปยังระเบียนก่อนหน้าได้ การเข้าถึงสตรีมมิ่งมีประสิทธิภาพสูงสุด

เทคโนโลยี ADO .NET, . NET FrameWork, คอร์บา

เทคโนโลยีการเข้าถึงฐานข้อมูลระยะไกล ADO .NET ยังได้รับการพัฒนาสำหรับสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์ นอกเหนือจากฐานข้อมูลระยะไกลสองระดับ - ไคลเอนต์และเซิร์ฟเวอร์ - ระดับเพิ่มเติมปรากฏขึ้น - เซิร์ฟเวอร์ตรรกะทางธุรกิจที่ใช้ตรรกะทางธุรกิจของแอปพลิเคชัน

เทคโนโลยี ADO .NET สร้างโครงร่างต่อไปนี้เพื่อให้ไคลเอ็นต์ทำงานกับเซิร์ฟเวอร์ฐานข้อมูล:

สร้างการเชื่อมต่อกับเซิร์ฟเวอร์

การรับข้อมูลที่จำเป็น

ปิดการเชื่อมต่อ

การประมวลผลข้อมูล

กำลังสร้างการเชื่อมต่อเพื่อถ่ายโอนข้อมูลที่เปลี่ยนแปลงกลับไปยังเซิร์ฟเวอร์

ADO .NET ขึ้นอยู่กับสองโมดูลหลัก:

ผู้ให้บริการข้อมูล .NET FrameWork

ฐานข้อมูลเชิงสัมพันธ์ที่อยู่อาศัย (DataSet)

ผู้ให้บริการข้อมูลตามชื่อของมัน มีหน้าที่ในการสื่อสารแอปพลิเคชันกับแหล่งข้อมูลและสำหรับการจัดการข้อมูล ผู้ให้บริการข้อมูลรวมถึงอ็อบเจ็กต์การจัดการข้อมูลต่อไปนี้:

ก) การเชื่อมต่อถูกใช้เพื่อสร้างการเชื่อมต่อกับแหล่งข้อมูล เช่นเดียวกับการจัดการธุรกรรม

b) คำสั่งอนุญาตให้คุณจัดการข้อมูลต้นทางรวมถึงดำเนินการตามขั้นตอนที่เก็บไว้ ในกรณีนี้ สามารถใช้พารามิเตอร์สำหรับการถ่ายโอนข้อมูลได้ทั้งสองทิศทาง

ค) DataAdapter ทำหน้าที่เป็นตัวเชื่อมระหว่างฐานข้อมูลชุดข้อมูลประจำบ้านและแหล่งข้อมูล และมักจะใช้ออบเจกต์คำสั่งเพื่อดำเนินการคำสั่ง SQL ทั้งเมื่อเติมชุดข้อมูลด้วยข้อมูลและเมื่อส่งข้อมูลกลับที่ลูกค้าเปลี่ยนแปลงไปยังต้นทาง มีสี่วิธีในการทำหน้าที่เหล่านี้: SelectCommand, InsertCommand, UpdateCommand และ DeleteCommand

d) DataReader ให้ข้อมูลแบบอ่านอย่างเดียวจากแหล่งที่มา หากแอปพลิเคชันไคลเอนต์ไม่แก้ไขข้อมูลและไม่ต้องการการเลือกข้อมูลโดยอำเภอใจ แต่การดูเพียงครั้งเดียวก็เพียงพอแล้ว การใช้ DataReader แทนชุดข้อมูลจะช่วยประหยัดทรัพยากรคอมพิวเตอร์ รวมทั้งเพิ่มประสิทธิภาพแอปพลิเคชันด้วย

ฐานข้อมูลสัมพันธ์ที่อยู่อาศัย เป็นฐานข้อมูลเชิงสัมพันธ์ที่ลูกค้าได้รับ ซึ่งจัดเก็บไว้ใน RAM ประจำเครื่อง

นอกจากนี้ ลูกค้าออฟไลน์จะประมวลผลข้อมูล และหากจำเป็น ให้แก้ไขข้อมูล หลังจากนั้นการเชื่อมต่อกับเซิร์ฟเวอร์จะถูกสร้างขึ้นอีกครั้ง และข้อมูลที่แก้ไขจากฐานข้อมูลประจำเครื่องจะถูกส่งกลับ

รูปแบบการโต้ตอบดังกล่าวค่อนข้างคล้ายกับงานของสถาปัตยกรรมไฟล์ -

เซิร์ฟเวอร์และมักใช้โดยองค์กรเมื่อทำงานกับฐานข้อมูลระยะไกลผ่าน เครือข่ายทั่วโลกอินเทอร์เน็ต.

เพื่อให้สามารถเข้าถึงออบเจ็กต์ผ่านทางอินเทอร์เน็ตทั่วโลก โดยเป็นส่วนหนึ่งของ ADO .NET โมดูล .NET FrameWork ได้จัดเตรียมการโต้ตอบระหว่างรูปแบบการนำเสนอข้อมูลต่างๆ รวมถึง HTML และ XML

จากลักษณะเหล่านี้ จะเห็นได้ว่าเทคโนโลยี ADO .NET ให้:

ความสามารถในการโต้ตอบระหว่างข้อมูลในรูปแบบต่างๆ รวมถึง HTML และ XML

ประหยัดค่าใช้จ่ายได้อย่างมากเมื่อทำงานกับฐานข้อมูลระยะไกลผ่านทางอินเทอร์เน็ตทั่วโลก

ADO.NET ใช้สถาปัตยกรรมแบบเลเยอร์ที่หมุนรอบแนวคิดหลักจำนวนเล็กน้อย เช่น อ็อบเจ็กต์ Connection, Command และ DataSet อย่างไรก็ตาม สถาปัตยกรรม ADO.NET นั้นแตกต่างจากสถาปัตยกรรม ADO แบบคลาสสิกอย่างมาก

ผู้ให้บริการข้อมูลใน ADO.NET

ผู้ให้บริการข้อมูลเป็นชุดของคลาส ADO.NET ที่ให้คุณเข้าถึงฐานข้อมูลเฉพาะ, ดำเนินการ คำสั่ง SQLและดึงข้อมูล โดยพื้นฐานแล้ว ผู้ให้บริการข้อมูลคือสะพานเชื่อมระหว่างแอปพลิเคชันของคุณและแหล่งข้อมูล

ในการประมาณค่าแรก ผู้ให้บริการข้อมูลถือได้ว่าเป็นชุดของประเภทที่กำหนดไว้ในเนมสเปซที่กำหนดซึ่งออกแบบมาเพื่อโต้ตอบกับแหล่งข้อมูลเฉพาะ อย่างไรก็ตาม โดยไม่คำนึงถึงผู้ให้บริการข้อมูลที่ใช้ แต่ละกำหนดชุดของคลาสที่มีฟังก์ชันหลัก ตารางด้านล่างแสดงรายการออบเจ็กต์พื้นฐานทั่วไป คลาสพื้นฐาน (กำหนดในเนมสเปซ System.Data.Common) และอินเทอร์เฟซหลัก (กำหนดในเนมสเปซ System.Data) ที่พวกเขานำไปใช้:

ออบเจ็กต์ผู้ให้บริการข้อมูล ADO.NET พื้นฐาน
ประเภทวัตถุ ชั้นฐาน อินเทอร์เฟซที่สอดคล้องกัน วัตถุประสงค์
การเชื่อมต่อ DbConnection IDbConnection ให้คุณเชื่อมต่อและยกเลิกการเชื่อมต่อจากที่เก็บข้อมูล นอกจากนี้ อ็อบเจ็กต์การเชื่อมต่อยังให้การเข้าถึงออบเจ็กต์ธุรกรรมที่เกี่ยวข้อง
สั่งการ DbCommand IDbCommand แสดงถึงแบบสอบถาม SQL หรือกระบวนงานที่เก็บไว้ นอกจากนี้ ออบเจ็กต์คำสั่งยังให้การเข้าถึงออบเจ็กต์ตัวอ่านข้อมูลของผู้ให้บริการข้อมูลเฉพาะ
เครื่องอ่านข้อมูล DbDataReader IDataReader, IDataRecord ให้การเข้าถึงข้อมูลแบบอ่านอย่างเดียวในทิศทางไปข้างหน้าโดยใช้เคอร์เซอร์ฝั่งเซิร์ฟเวอร์
DataAdapter DbDataAdapter IDataAdapter, IDbDataAdapter โอนชุดข้อมูลจากที่เก็บข้อมูลไปยังกระบวนการโทรและในทางกลับกัน อะแด็ปเตอร์ข้อมูลประกอบด้วยการเชื่อมต่อและชุดของอ็อบเจ็กต์คำสั่งภายในสี่อ็อบเจ็กต์สำหรับการดึง แทรก แก้ไข และลบข้อมูลในที่เก็บข้อมูล
พารามิเตอร์ DbParameter IDataParameter, IDbDataParameter แสดงถึงพารามิเตอร์ที่มีชื่อในเคียวรีแบบกำหนดพารามิเตอร์
ธุรกรรม DbTransaction IDbTransaction สรุปธุรกรรมในฐานข้อมูล

ชื่อเฉพาะของคลาสพื้นฐานเหล่านี้แตกต่างกันไปตามผู้ให้บริการ (เช่น SqlConnection, OracleConnection, OdbcConnection และ MySqlConnection) แต่อ็อบเจ็กต์เหล่านี้ล้วนมาจากคลาสพื้นฐานเดียวกัน (ในกรณีของอ็อบเจ็กต์การเชื่อมต่อ DbConnection) ที่ใช้อินเทอร์เฟซที่เหมือนกัน (เช่น IDbConnection) . ดังนั้น หากคุณเรียนรู้วิธีทำงานกับผู้ให้บริการข้อมูลรายเดียว คุณจะสามารถจัดการส่วนที่เหลือได้อย่างง่ายดาย

ใน ADO.NET คำว่า "connection object" หมายถึงประเภทที่เป็นรูปธรรมซึ่งได้มาจาก DbConnection ไม่มีวัตถุเชื่อมต่อ "เลย" สามารถพูดได้เช่นเดียวกันเกี่ยวกับ "วัตถุคำสั่ง" "วัตถุอะแดปเตอร์ข้อมูล" ฯลฯ ตามธรรมเนียมแล้ว ชื่ออ็อบเจ็กต์ในผู้ให้บริการข้อมูลเฉพาะจะถูกนำหน้าด้วย DBMS ที่เหมาะสม (เช่น SqlConnection, OracleConnection, SqlDataReader เป็นต้น)

แนวคิดหลักประการหนึ่งที่อยู่เบื้องหลังโมเดลผู้ให้บริการ ADO.NET คือความสามารถในการขยาย กล่าวอีกนัยหนึ่ง นักพัฒนาสามารถสร้างผู้ให้บริการของตนเองสำหรับแหล่งข้อมูลที่เป็นกรรมสิทธิ์ อันที่จริง มีตัวอย่างมากมายที่สาธิตวิธีสร้างผู้ให้บริการ ADO.NET แบบกำหนดเองที่รวมที่เก็บข้อมูลที่ไม่สัมพันธ์กัน เช่น ระบบไฟล์หรือบริการไดเรกทอรี บุคคลที่สามบางรายขายผู้ให้บริการข้อมูล .NET ของตนเองด้วย

.NET Framework มาพร้อมกับผู้ให้บริการกลุ่มเล็กๆ สี่ราย:

SQL Server

ให้การเข้าถึงฐานข้อมูลที่เหมาะสมที่สุด ข้อมูล SQLเซิร์ฟเวอร์ (เวอร์ชัน 7.0 ขึ้นไป)

OLEDB

ให้การเข้าถึงแหล่งข้อมูลใดๆ ที่มีไดรเวอร์ OLE DB ซึ่งรวมถึงฐานข้อมูล SQL Server รุ่นก่อน 7.0

Oracle

ให้การเข้าถึงฐานข้อมูล Oracle ที่เหมาะสมที่สุด (เวอร์ชัน 8i ขึ้นไป)

ODBC

ให้การเข้าถึงแหล่งข้อมูลใดๆ ที่มีไดรเวอร์ ODBC

ใน .NET 4 ผู้ให้บริการ Oracle เลิกใช้แล้ว ขณะที่ยังใช้งานได้ Microsoft ขอแนะนำให้ใช้ผู้ให้บริการบุคคลที่สามเพื่อเข้าถึงฐานข้อมูล Oracle แทน เช่น ODP.NET ของ Oracle (ผู้ให้บริการข้อมูล Oracle สำหรับ .NET) ซึ่งมีอยู่ที่ http://www.oracle.com ผู้ให้บริการรายนี้ให้การสนับสนุนอย่างกว้างขวางสำหรับประเภทข้อมูลเฉพาะของ Oracle เช่น LOB, การประทับเวลา และข้อมูล XML รวมถึงคุณสมบัติเพิ่มเติมหลายอย่าง

รูปด้านล่างแสดงระดับของโมเดลผู้ให้บริการ ADO.NET:

เมื่อเลือกผู้ให้บริการ ก่อนอื่นให้ลองค้นหาผู้ให้บริการ .NET ในตัวที่กำหนดเป้าหมายไปยังแหล่งข้อมูลของคุณ หากไม่พบ คุณสามารถใช้ OLE DB ได้ถ้าคุณมีโปรแกรมควบคุม OLE DB สำหรับแหล่งข้อมูล

เทคโนโลยี OLE DB เป็นส่วนหนึ่งของ ADO มานานหลายปี ดังนั้นแหล่งข้อมูลส่วนใหญ่จึงมีไดรเวอร์ OLE DB (รวมถึง SQL Server, Oracle, Access, MySQL และอื่นๆ อีกมากมาย) ในบางกรณีซึ่งเกิดขึ้นได้ยากซึ่งคุณไม่สามารถหาผู้ให้บริการ .NET แบบกำหนดเองหรือโปรแกรมควบคุม OLE DB ได้ คุณสามารถดูผู้ให้บริการ ODBC ที่ทำงานร่วมกับโปรแกรมควบคุม ODBC ได้

มาตรฐานใน ADO.NET

เมื่อมองแวบแรก ADO.NET อาจเสนอโมเดลแบบแยกส่วน เนื่องจากไม่มีชุดของอ็อบเจ็กต์ทั่วไปที่จะทำงานกับฐานข้อมูลหลายประเภท ดังนั้น เมื่อคุณย้ายจาก DBMS เชิงสัมพันธ์หนึ่งไปยังอีกที่หนึ่ง คุณต้องแก้ไขรหัสการเข้าถึงข้อมูลเพื่อใช้ชุดคลาสที่แตกต่างกัน

แม้ว่าผู้ให้บริการข้อมูล .NET ที่แตกต่างกันจะใช้คลาสที่ต่างกัน แต่ก็มีการกำหนดมาตรฐานไว้ไม่ทางใดก็ทางหนึ่ง แม่นยำยิ่งขึ้น ผู้ให้บริการแต่ละรายใช้ชุดอินเทอร์เฟซและคลาสพื้นฐานเดียวกัน ตัวอย่างเช่น วัตถุการเชื่อมต่อใช้อินเทอร์เฟซ IDbConnection ซึ่งกำหนดวิธีการหลักเช่น Open() และ Close() มาตรฐานนี้ทำให้แน่ใจว่าทุกคลาส Connection ทำงานในลักษณะเดียวกัน และจัดเตรียมชุดคุณสมบัติหลักและวิธีการเดียวกัน

เบื้องหลัง ผู้ให้บริการต่าง ๆ ใช้การเรียกระดับต่ำและ API ที่แตกต่างกันโดยสิ้นเชิง ตัวอย่างเช่น ผู้ให้บริการข้อมูลเซิร์ฟเวอร์ SQL ใช้โปรโตคอลที่เป็นกรรมสิทธิ์ TDS (สตรีมข้อมูลแบบตาราง - สตรีมข้อมูลแบบตาราง)เพื่อโต้ตอบกับเซิร์ฟเวอร์ ข้อดีของรุ่นนี้ไม่ชัดเจนในทันที แต่สำคัญมาก:

    เนื่องจากผู้ให้บริการแต่ละรายใช้อินเทอร์เฟซและคลาสพื้นฐานเดียวกัน คุณจึงสามารถเขียนรหัสการเข้าถึงข้อมูลทั่วไป (ด้วยการทำงานพิเศษเล็กน้อย) โดยการทำงานกับอินเทอร์เฟซมากกว่าคลาสผู้ให้บริการ

    เนื่องจากผู้ให้บริการแต่ละรายมีการใช้งานแยกกัน จึงสามารถใช้การปรับให้เหมาะสมที่เหมาะสม (ซึ่งแตกต่างจากโมเดล ADO ซึ่งการเรียกฐานข้อมูลแต่ละครั้งต้องผ่านเลเยอร์ทั่วไปก่อนที่จะถึงโปรแกรมควบคุมฐานข้อมูลพื้นฐาน) นอกจากนี้ ผู้ขายแบบกำหนดเองสามารถเพิ่มคุณลักษณะที่ไม่ได้มาตรฐานที่ผู้ขายรายอื่นไม่มี (เช่น ความสามารถของ SQL Sever ในการดำเนินการค้นหา XML)

ADO.NET ยังมีมาตรฐานอีกระดับหนึ่ง - ชุดข้อมูล. คลาสชุดข้อมูลเป็นที่เก็บข้อมูลวัตถุประสงค์ทั่วไปที่ดึงมาจากตารางแหล่งข้อมูลตั้งแต่หนึ่งตารางขึ้นไป ชุดข้อมูลเป็นแบบทั่วไปทั้งหมด กล่าวอีกนัยหนึ่ง ผู้ให้บริการที่กำหนดเองไม่ได้กำหนดเวอร์ชันที่กำหนดเองของคลาส DataSet

ไม่ว่าคุณจะใช้ผู้ให้บริการข้อมูลรายใด คุณสามารถดึงข้อมูลและใส่ลงในชุดข้อมูลที่มีข้อมูลครบถ้วนได้ในลักษณะเดียวกัน ทำให้ง่ายต่อการแยกรหัสที่ดึงข้อมูลจากรหัสที่ประมวลผล ถ้าฐานข้อมูลพื้นฐานเปลี่ยนแปลง จะต้องเปลี่ยนเฉพาะรหัสที่ดึงข้อมูล แต่ถ้าชุดข้อมูลถูกใช้และข้อมูลมีโครงสร้างเดียวกัน ไม่จำเป็นต้องแก้ไขวิธีการประมวลผล

คลาสพื้นฐาน ADO.NET

คลาส ADO.NET ถูกจัดกลุ่มเป็นหลายเนมสเปซ ผู้ให้บริการแต่ละรายมีเนมสเปซของตัวเอง และคลาสทั่วไป เช่น DataSet จะอยู่ในเนมสเปซ System.Data เนมสเปซที่สำคัญที่สุดสำหรับการสนับสนุน ADO.NET ขั้นพื้นฐานอธิบายไว้ด้านล่าง:

System.Data

ประกอบด้วยคลาสคอนเทนเนอร์ข้อมูลคีย์ที่สร้างโมเดลคอลัมน์ ความสัมพันธ์ ตาราง ชุดข้อมูล แถว มุมมอง และข้อจำกัด นอกจากนี้ยังมีอินเทอร์เฟซหลักที่นำมาใช้โดยออบเจ็กต์ข้อมูลตามการเชื่อมต่อ

System.Data.Common

ประกอบด้วยคลาสพื้นฐานที่เป็นนามธรรมส่วนใหญ่ที่ใช้อินเทอร์เฟซบางส่วนจาก System.Data และกำหนดฟังก์ชันหลักของ ADO.NET ผู้ให้บริการข้อมูลสืบทอดจากคลาสเหล่านี้ (DbConnection, DbCommand เป็นต้น) สร้างเวอร์ชันเฉพาะของตนเอง

System.Data.OleDb

ประกอบด้วยคลาสที่ใช้เชื่อมต่อกับผู้ให้บริการ OLE DB รวมถึง OleDbCommand, OleDbConnection และ OleDbDataAdapter คลาสเหล่านี้รองรับผู้ให้บริการ OLE DB ส่วนใหญ่ แต่ไม่ใช่คลาสที่ต้องการอินเทอร์เฟซ OLE DB เวอร์ชัน 2.5

System.Data.SqlClient

ประกอบด้วยคลาสที่ใช้เชื่อมต่อกับฐานข้อมูล Microsoft SQL Server รวมถึง SqlDbCommand, SqlDbConnection และ SqlDbDataAdapter คลาสเหล่านี้ได้รับการปรับให้เหมาะสมเพื่อใช้อินเทอร์เฟซ TDS กับ SQL Server

System.Data.OracleClient

ประกอบด้วยคลาสที่จำเป็นในการเชื่อมต่อกับฐานข้อมูล Oracle (เวอร์ชัน 8.1.7 และใหม่กว่า) รวมถึง OracleCommand, OracleConnection และ OracleDataAdapter คลาสเหล่านี้ใช้อินเทอร์เฟซที่ปรับให้เหมาะสม OCI (อินเทอร์เฟซการโทรของ Oracle - อินเทอร์เฟซการโทรของ Oracle)

System.Data.Odbc

ประกอบด้วยคลาสที่จำเป็นในการเชื่อมต่อกับไดรเวอร์ ODBC ส่วนใหญ่ เช่น OdbcCommand, OdbcConnection, OdbcDataReader และ OdbcDataAdapter ไดรเวอร์ ODBC มีให้สำหรับแหล่งข้อมูลทุกประเภทและกำหนดค่าผ่านไอคอนแหล่งข้อมูลในแผงควบคุม

System.Data.SqlTypes

มีโครงสร้างที่สอดคล้องกับชนิดข้อมูล SQL Server ในตัว คลาสเหล่านี้ไม่จำเป็น แต่ให้ทางเลือกแทนการใช้ชนิดข้อมูล .NET มาตรฐานที่ต้องมีการแปลงอัตโนมัติ

ภาพรวม ADO.NET

ADO.NET- เป็นมากกว่าส่วนเสริมของ API ที่มีอยู่ ความคล้ายคลึงกันกับ ADO นั้นน้อยมาก คลาสและวิธีการเข้าถึงข้อมูลค่อนข้างแตกต่างกัน

ADO (ออบเจ็กต์ข้อมูล ActiveX)เป็นไลบรารีคอมโพเนนต์ COM ที่ได้เห็นการจุติมาหลายครั้งในช่วงไม่กี่ปีที่ผ่านมา ADO ประกอบด้วยอ็อบเจ็กต์ Connection, Command, Recordset และ Field เป็นหลัก เมื่อใช้ ADO การเชื่อมต่อกับฐานข้อมูลจะถูกเปิด หลังจากนั้นข้อมูลบางส่วนจะถูกดึงมาและวางลงในชุดของเรคคอร์ดที่ประกอบด้วยฟิลด์ ข้อมูลนี้จะถูกจัดการและอัปเดตบนเซิร์ฟเวอร์ หลังจากนั้นการเชื่อมต่อจะถูกปิด นอกจากนี้ ADO ยังเสนอบริการที่เรียกว่า ชุดบันทึกที่ตัดการเชื่อมต่อซึ่งใช้เมื่อการเชื่อมต่อกับฐานไม่พึงปรารถนาให้เปิดไว้เป็นเวลานาน

มีปัญหาหลายอย่างที่ ADO ไม่สามารถแก้ไขได้อย่างน่าพอใจ สิ่งที่น่าสังเกตมากที่สุดคือความเทอะทะ (ในแง่ของขนาดจริง) ของชุดระเบียนที่ปิดใช้งาน ความต้องการเครื่องมือนี้เพิ่มมากขึ้นเนื่องจากการประมวลผลทางเว็บพัฒนาขึ้น ดังนั้นจึงจำเป็นต้องมีแนวทางใหม่ในกรณีนี้ การย้ายจาก ADO เป็น ADO.NET ไม่น่าจะยากเกินไป เนื่องจากเทคโนโลยีทั้งสองยังคงมีความคล้ายคลึงกันอยู่บ้าง

นอกจากนี้ หากคุณใช้ SQL Server มีชุดคลาสที่มีการจัดการที่ยอดเยี่ยมซึ่งได้รับการกำหนดค่าให้ ประสิทธิภาพสูงสุดฐานข้อมูล เพียงเท่านี้ก็เพียงพอแล้วที่จะเปลี่ยนไปใช้ ADO.NET

ADO.NET มาพร้อมกับเนมสเปซไคลเอ็นต์ฐานข้อมูลสามรายการ: หนึ่งรายการสำหรับ SQL Server, อื่นๆ สำหรับแหล่งข้อมูล เปิดการเชื่อมต่อฐานข้อมูล (ODBC)และที่สามสำหรับฐานข้อมูลใด ๆ ที่เข้าถึงได้ผ่าน OLEDB. ถ้าคุณเลือกฐานข้อมูลอื่นที่ไม่ใช่ SQL Server ให้เลือก OLE DB เว้นแต่คุณจะพบว่าไม่มีทางเลือกอื่นนอกจาก ODBC หากคุณใช้ Oracle เป็นฐานข้อมูล คุณสามารถเยี่ยมชมไซต์ Oracle .NET Developer และรับผู้จำหน่าย .NET - ODP.NET จาก www.oracle.com/technology/tech/windows/odpnet/index.html

จากมุมมองของโปรแกรมเมอร์ เนื้อหาของ ADO.NET คือชุดประกอบฐานที่ชื่อว่า System.Data.dll. ไบนารีนี้มีจำนวนเนมสเปซจำนวนมาก ซึ่งหลายรายการแสดงถึงประเภทของผู้ให้บริการข้อมูล ADO.NET ที่เฉพาะเจาะจง:

เทมเพลตโปรเจ็กต์ Visual Studio 2010 ส่วนใหญ่อ้างอิงไลบรารีการเข้าถึงข้อมูลคีย์นี้โดยอัตโนมัติ อย่างไรก็ตาม ในการนำเข้าเนมสเปซที่ต้องการ คุณต้องเปลี่ยนไฟล์โค้ด เช่น

การใช้ระบบ ใช้ System.Data; ใช้ System.Data.SqlClient; ...

นอกจากนี้ โปรดทราบว่ายังมีแอสเซมบลีเชิง ADO.NET อื่นๆ นอกเหนือจาก System.Data.dll (ตัวอย่างเช่น System.Data.OracleClient.dllและ System.Data.Entity.dll) ที่ต้องระบุด้วยตนเองในโปรเจ็กต์ปัจจุบันโดยใช้กล่องโต้ตอบเพิ่มการอ้างอิง

สามด้านของ ADO.NET

ไลบรารี ADO.NET สามารถใช้ได้สามวิธีตามแนวคิด วิธีทางที่แตกต่าง: เชื่อมต่อ ออฟไลน์ และใช้เทคโนโลยี Entity Framework โดยใช้ ชั้นเชื่อมต่อ, codebase เชื่อมต่ออย่างชัดเจนและยกเลิกการเชื่อมต่อจากที่เก็บข้อมูลที่เหมาะสม วิธีการใช้ ADO.NET นี้มักจะโต้ตอบกับที่เก็บข้อมูลโดยใช้อ็อบเจ็กต์การเชื่อมต่อ ออบเจ็กต์คำสั่ง และอ็อบเจ็กต์ตัวอ่านข้อมูล

ชั้นอิสระ (ชั้นตัดการเชื่อมต่อ)ช่วยให้คุณทำงานกับ DataTable (มีอยู่ในชุดข้อมูล) ที่แสดงสำเนาข้อมูลภายนอกฝั่งไคลเอ็นต์ เมื่อมีการเรียกชุดข้อมูลโดยใช้วัตถุอะแดปเตอร์ข้อมูลที่เหมาะสม การเชื่อมต่อจะเปิดและปิดโดยอัตโนมัติ เป็นที่ชัดเจนว่าวิธีการนี้ช่วยเพิ่มการเชื่อมต่ออย่างรวดเร็วสำหรับการโทรอื่นๆ และเพิ่มความสามารถในการปรับขนาดของระบบ

ปรับปรุงล่าสุด: 31.10.2015

ทุกวันนี้ การทำงานกับข้อมูลมีความสำคัญอย่างยิ่ง ใช้เพื่อเก็บข้อมูล ระบบต่างๆการจัดการฐานข้อมูล: MS SQL Server, Oracle, MySQL และอื่นๆ และแอปพลิเคชั่นขนาดใหญ่ส่วนใหญ่ใช้ระบบการจัดการฐานข้อมูลเหล่านี้ไม่ทางใดก็ทางหนึ่งเพื่อเก็บข้อมูล อย่างไรก็ตาม จำเป็นต้องมีตัวกลางในการสื่อสารระหว่างฐานข้อมูลและแอปพลิเคชัน C# และตัวกลางดังกล่าวก็คือเทคโนโลยี ADO.NET

ADO.NET จัดเตรียมเทคโนโลยีข้อมูลที่ยึดตาม .NET Framework เทคโนโลยีนี้นำเสนอชุดของคลาสซึ่งเราสามารถส่งการสืบค้นไปยังฐานข้อมูล สร้างการเชื่อมต่อ รับการตอบสนองจากฐานข้อมูล และดำเนินการอื่นๆ จำนวนหนึ่ง

นอกจากนี้ สิ่งสำคัญที่ควรทราบก็คือ ระบบจัดการฐานข้อมูลอาจมีได้หลายระบบ โดยพื้นฐานแล้วอาจแตกต่างกัน MS SQL Server เช่น ใช้ ภาษา T-SQLในขณะที่ MySQL และ Oracle ใช้ PL-SQL ระบบฐานข้อมูลที่แตกต่างกันอาจมีข้อมูลประเภทต่างๆ จุดอื่นๆ อาจแตกต่างกัน อย่างไรก็ตาม ฟังก์ชันการทำงานของ ADO.NET นั้นสร้างขึ้นเพื่อให้นักพัฒนามีอินเทอร์เฟซแบบรวมสำหรับการทำงานกับ DBMS ที่หลากหลาย

อินเทอร์เฟซฐานข้อมูลใน ADO.NET ขึ้นอยู่กับวัตถุช่วงที่จำกัด: การเชื่อมต่อ คำสั่ง DataReader ชุดข้อมูล และ DataAdapter วัตถุการเชื่อมต่อสร้างการเชื่อมต่อกับแหล่งข้อมูล ออบเจ็กต์คำสั่งอนุญาตให้คุณดำเนินการกับข้อมูลจากฐานข้อมูล ออบเจ็กต์ DataReader อ่านข้อมูลที่ได้รับจากการร้องขอ ออบเจ็กต์ DataSet ออกแบบมาเพื่อเก็บข้อมูลจากฐานข้อมูล และอนุญาตให้คุณทำงานกับข้อมูลเหล่านี้โดยไม่ขึ้นกับฐานข้อมูล และวัตถุ DataAdapter เป็นตัวกลางระหว่างชุดข้อมูลและแหล่งข้อมูล โดยหลักแล้ว ผ่านวัตถุเหล่านี้ การทำงานกับฐานข้อมูลจะไป

อย่างไรก็ตาม เพื่อที่จะใช้ออบเจ็กต์ชุดเดียวกันสำหรับแหล่งข้อมูลที่แตกต่างกัน ค่าที่เหมาะสม ผู้ให้บริการข้อมูล. ที่จริงแล้ว ผ่านผู้ให้บริการข้อมูลใน ADO.NET การโต้ตอบกับฐานข้อมูลจะดำเนินการ นอกจากนี้ สำหรับแต่ละแหล่งข้อมูลใน ADO.NET สามารถมีผู้ให้บริการของตัวเองได้ ซึ่งจริงๆ แล้วเป็นตัวกำหนดการใช้งานเฉพาะของคลาสข้างต้น

โดยค่าเริ่มต้น ADO.NET มีผู้ให้บริการในตัวต่อไปนี้:

    ผู้ให้บริการสำหรับ MS SQL Server

    ผู้ให้บริการสำหรับ OLE DB (ให้การเข้าถึง MS SQL Server เวอร์ชันเก่าบางเวอร์ชัน เช่นเดียวกับฐานข้อมูล Access, DB2, MySQL และ Oracle)

    ผู้ให้บริการสำหรับ ODBC (ผู้ให้บริการสำหรับแหล่งข้อมูลที่ไม่มีผู้ให้บริการ)

    ผู้ให้บริการสำหรับ Oracle

    ผู้ให้บริการ EntityClient ผู้ให้บริการข้อมูลสำหรับเทคโนโลยี ORM Entity Framework

    ผู้ให้บริการสำหรับ SQL Server Compact 4.0 Server

นอกจากผู้ให้บริการเหล่านี้แล้ว ยังมีบริการอื่นๆ อีกมากมายที่ออกแบบมาสำหรับฐานข้อมูลต่างๆ เช่น MySQL

เนมสเปซหลักที่ใช้ใน ADO.NET คือ:

    System.Data: กำหนดคลาส อินเตอร์เฟส ผู้รับมอบสิทธิ์ที่ใช้สถาปัตยกรรม ADO.NET

    System.Data.Common: มีคลาสทั่วไปสำหรับผู้ให้บริการ ADO.NET ทั้งหมด

    System.Data.Design: กำหนดคลาสที่ใช้สร้างชุดข้อมูลของตัวเอง

    System.Data.Odbc: กำหนดการทำงานของผู้ให้บริการข้อมูลสำหรับ ODBC

    System.Data.OleDb: กำหนดฟังก์ชันของผู้ให้บริการข้อมูลสำหรับ OLE DB

    System.Data.Sql: จัดเก็บคลาสที่รองรับการทำงานเฉพาะของ SQL Server

    System.Data.OracleClient: กำหนดฟังก์ชันของผู้ให้บริการสำหรับฐานข้อมูล Oracle

    System.Data.SqlClient: กำหนดฟังก์ชันของผู้ให้บริการสำหรับฐานข้อมูล MS SQL Server

    System.Data.SqlServerCe: กำหนดฟังก์ชันของผู้ให้บริการสำหรับ SQL Server Compact 4.0

    System.Data.SqlTypes: มีคลาสสำหรับประเภทข้อมูล MS SQL Server

    Microsoft.SqlServer.Server: จัดเก็บส่วนประกอบสำหรับ SQL Server เพื่อสื่อสารกับรันไทม์ภาษาทั่วไป

แผนผังสถาปัตยกรรมของ ADO.NET สามารถแสดงได้ดังนี้:

ตามการใช้งาน คลาส ADO.NET สามารถแบ่งออกเป็นสองระดับ: เชื่อมต่อและตัดการเชื่อมต่อ ผู้ให้บริการข้อมูล .NET แต่ละรายใช้เวอร์ชันของตนเองของ Connection, Command, DataReader, DataAdapter และอ็อบเจ็กต์อื่นๆ จำนวนหนึ่งที่ประกอบเป็นเลเยอร์ที่เชื่อมต่อ นั่นคือด้วยความช่วยเหลือของพวกเขาการเชื่อมต่อกับฐานข้อมูลถูกสร้างขึ้นและดำเนินการโต้ตอบกับมัน ตามกฎแล้ว การใช้งานออบเจ็กต์เหล่านี้สำหรับผู้ให้บริการแต่ละรายจะมีคำนำหน้าในชื่อที่ระบุผู้ให้บริการ:

คลาสอื่นๆ เช่น DataSet, DataTable, DataRow, DataColumn และอื่นๆ อีกจำนวนหนึ่งประกอบขึ้นเป็นเลเยอร์ที่ตัดการเชื่อมต่อ เนื่องจากเมื่อข้อมูลถูกดึงเข้าสู่ DataSet เราสามารถทำงานกับข้อมูลนั้นได้ไม่ว่าจะมีการสร้างการเชื่อมต่อหรือไม่ก็ตาม กล่าวคือ หลังจากได้รับข้อมูลจากฐานข้อมูลแล้ว แอปพลิเคชันสามารถยกเลิกการเชื่อมต่อจากแหล่งข้อมูลได้



กำลังโหลด...
สูงสุด