การใช้งาน Entity Framework กับ Oracle Database (LINQ to Entities - Oracle Database) |
การใช้งาน Entity Framework กับ Oracle Database (LINQ to Entities - Oracle Database) การเขียน LINQ to Entities กับ Oracle ในหัวข้อนี้เราจะมาเรียนรู้วิธีการ Config และติดตั้งรายการ Driver ต่าง ๆ เพื่อให้สามารถใช้ Oracle Database กับ Entity Framework ได้ ซึ่งในการใช้งานจะรองรับตั้งแต่ Entity Framework 5 ขึ้นไป และอาจจะต้องมำการติดตั้งพวก Driver ต่าง ๆ ที่เกี่ยวข้องด้วย
Table : CUSTOMER
CREATE TABLE "CUSTOMER"
( "CUSTOMER_ID" VARCHAR2(4 BYTE) NOT NULL ENABLE,
"NAME" VARCHAR2(50 BYTE),
"EMAIL" VARCHAR2(50 BYTE),
"COUNTRY_CODE" VARCHAR2(2 BYTE),
"BUDGET" NUMBER(18,2),
"USED" NUMBER(18,2),
CONSTRAINT "CUSTOMER_PK" PRIMARY KEY ("CUSTOMER_ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "SYSTEM" ENABLE
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "SYSTEM" ;
INSERT INTO CUSTOMER (CUSTOMER_ID, NAME, EMAIL, COUNTRY_CODE, BUDGET, USED) VALUES ('C001', 'Win Weerachai', '[email protected]', 'TH', 1000000.00, 600000.00);
INSERT INTO CUSTOMER (CUSTOMER_ID, NAME, EMAIL, COUNTRY_CODE, BUDGET, USED) VALUES ('C002', 'John Smith', '[email protected]', 'UK', 2000000.00, 800000.00);
INSERT INTO CUSTOMER (CUSTOMER_ID, NAME, EMAIL, COUNTRY_CODE, BUDGET, USED) VALUES ('C003', 'Jame Born', '[email protected]', 'US', 3000000.00, 600000.00);
INSERT INTO CUSTOMER (CUSTOMER_ID, NAME, EMAIL, COUNTRY_CODE, BUDGET, USED) VALUES ('C004', 'Chalee Angel', '[email protected]', 'US', 4000000.00, 100000.00);

Table : COUNTRY
CREATE TABLE "COUNTRY"
( "COUNTRY_CODE" VARCHAR2(2 BYTE) NOT NULL ENABLE,
"COUNTRY_NAME" VARCHAR2(50 BYTE),
CONSTRAINT "COUNTRY_PK" PRIMARY KEY ("COUNTRY_CODE")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "SYSTEM" ENABLE
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "SYSTEM" ;
INSERT INTO COUNTRY (COUNTRY_CODE, COUNTRY_NAME) VALUES ('TH', 'Thailand');
INSERT INTO COUNTRY (COUNTRY_CODE, COUNTRY_NAME) VALUES ('UK', 'United Kingdom');
INSERT INTO COUNTRY (COUNTRY_CODE, COUNTRY_NAME) VALUES ('US', 'United States');

Table : AUDIT_LOG
CREATE TABLE "AUDIT_LOG"
( "AUDIT_ID" NUMBER(*,0) NOT NULL ENABLE,
"CUSTOMER_ID" VARCHAR2(4 BYTE),
"LOG_DATE" DATE,
"USED" NUMBER(18,2),
CONSTRAINT "AUDIT_LOG_PK" PRIMARY KEY ("AUDIT_ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "SYSTEM" ENABLE
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "SYSTEM" ;
INSERT INTO AUDIT_LOG (AUDIT_ID, CUSTOMER_ID,LOG_DATE,USED) VALUES ('1', 'C001', to_date('01-AUG-15','DD-MON-RR'), '100000.00');
INSERT INTO AUDIT_LOG (AUDIT_ID, CUSTOMER_ID,LOG_DATE,USED) VALUES ('2', 'C001', to_date('05-AUG-15','DD-MON-RR'), '200000.00');
INSERT INTO AUDIT_LOG (AUDIT_ID, CUSTOMER_ID,LOG_DATE,USED) VALUES ('3', 'C001', to_date('10-AUG-15','DD-MON-RR'), '300000.00');
INSERT INTO AUDIT_LOG (AUDIT_ID, CUSTOMER_ID,LOG_DATE,USED) VALUES ('4', 'C002', to_date('02-AUG-15','DD-MON-RR'), '400000.00');
INSERT INTO AUDIT_LOG (AUDIT_ID, CUSTOMER_ID,LOG_DATE,USED) VALUES ('5', 'C002', to_date('07-AUG-15','DD-MON-RR'), '100000.00');
INSERT INTO AUDIT_LOG (AUDIT_ID, CUSTOMER_ID,LOG_DATE,USED) VALUES ('6', 'C002', to_date('15-AUG-15','DD-MON-RR'), '300000.00');
INSERT INTO AUDIT_LOG (AUDIT_ID, CUSTOMER_ID,LOG_DATE,USED) VALUES ('7', 'C003', to_date('20-AUG-15','DD-MON-RR'), '400000.00');
INSERT INTO AUDIT_LOG (AUDIT_ID, CUSTOMER_ID,LOG_DATE,USED) VALUES ('8', 'C003', to_date('25-AUG-15','DD-MON-RR'), '200000.00');
INSERT INTO AUDIT_LOG (AUDIT_ID, CUSTOMER_ID,LOG_DATE,USED) VALUES ('9', 'C004', to_date('04-AUG-15','DD-MON-RR'), '100000.00');


เปิดโปรเจคบน Visual Studio
สิ่งที่จำเป็นต้องมี (ให้ดาวน์โหลดมาติดตั้งให้ครบ)- Oracle Data Access Components (ODAC) 11.2.0.3 or later
- ODP.NET
ในการเชื่อมต่อรายการ Entity Framework กับ Oracle Database สามารถเชื่อมต่อกับ Database Oracle โดยการ Add Connection เข้าที่มา Server Explorer

เลือก Add รายการ Connection เข้ามาที่ Server Explorer

เลือก Change

เลือก Oracle Database

กรอก Instance Name ที่จะเชื่อมต่อ และกำหนด User/Password ในการเชื่อมต่อ

ทดสอบ Test Connection

รายการเชื่อมต่อที่จะเรียกใช้ ซึ่งเราสามารถเรียกใช้ได้จาก tcdb.MYUSER ได้ทันที

หลังจากนั้นในส่วน Connection จะมีรายการให้เลือกที่จะเชื่อมต่อกับ Oracle Database
และสำหรับวิธีการใช้งานอื่น ๆ ก็ไมได้แตกต่างอะไรกับ MySQL Database

รายการ Table บน Entity Model

ทดสอบสร้าง DataGridView สำหรับการทดสอบเรียกข้อมูล
Code C#
// Create new entities Object
using (var db = new myDatabaseEntities())
{
// Get data from customer
var ds = (from c in db.customer
select c).ToList();
// Assign to DataGridView
if (ds.Count() > 0)
{
this.myDataGridView.DataSource = ds;
}
}
Code VB.Net
' Create new entities Object
Using db = New myDatabaseEntities()
' Get data from customer
Dim ds = (From c In db.customer Select c).ToList()
' Assign to DataGridView
If ds.Count() > 0 Then
Me.myDataGridView.DataSource = ds
End If
End Using
Result

การใช้งาน Entity Framework กับ MySQL Database (LINQ to Entities - MySQL Database)
เพิ่มเติม : Entity Framework กับ Oracle Database
|