การใช้งาน 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);
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-01.jpg?v=1001)
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');
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-02.jpg?v=1001)
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');
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-03.jpg?v=1001)
![](/images/adv.jpg)
เปิดโปรเจคบน 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
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-04.jpg?v=1001)
เลือก Add รายการ Connection เข้ามาที่ Server Explorer
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-05.jpg?v=1001)
เลือก Change
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-06.jpg?v=1001)
เลือก Oracle Database
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-07.jpg?v=1001)
กรอก Instance Name ที่จะเชื่อมต่อ และกำหนด User/Password ในการเชื่อมต่อ
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-07-1.jpg?v=1001)
ทดสอบ Test Connection
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-07-2.jpg?v=1001)
รายการเชื่อมต่อที่จะเรียกใช้ ซึ่งเราสามารถเรียกใช้ได้จาก tcdb.MYUSER ได้ทันที
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-oracle-08.jpg?v=1001)
หลังจากนั้นในส่วน Connection จะมีรายการให้เลือกที่จะเชื่อมต่อกับ Oracle Database
และสำหรับวิธีการใช้งานอื่น ๆ ก็ไมได้แตกต่างอะไรกับ MySQL Database
![Entity Framework MySQL Database Entity Framework MySQL Database](https://www.thaicreate.com/upload/tutorial/entity-framework-mysql-15.jpg?v=1001)
รายการ Table บน Entity Model
![Entity Framework Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-mysql-16.jpg?v=1001)
ทดสอบสร้าง 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 Oracle Database Entity Framework Oracle Database](https://www.thaicreate.com/upload/tutorial/entity-framework-mysql-17.jpg?v=1001)
การใช้งาน Entity Framework กับ MySQL Database (LINQ to Entities - MySQL Database)
เพิ่มเติม : Entity Framework กับ Oracle Database
|