Auto remove schema in EDMX on build
Entity Framework (EF) คือ data access technology ที่เริ่มเปิดตัวครั้งแรกเป็นส่วนหนึ่งของ .NET Framework 3.5 SP1 โดยตัว EF จะทำหน้าที่เป็น object-relational mapper ที่ทำให้ผู้พัฒนาไม่จำเป็นต้องเขียน code ในส่วน data access ก็สามารถใช้ข้อมูลจาก relational database โดยผ่าน object model การพัฒนาโปรแกรมโดยใช้ EF นั้นจำเป็นต้องมี Entity Data Model เป็น model ที่กำหนดรายละเอียดเกี่ยวกับ entity และ relationship ระหว่าง entity นั้นๆ การสร้าง Entity Data Model สามารถแยกออกเป็น 2 แนวทางคือ “Code First” เป็นการกำหนดรูปร่างของ model โดยการสร้าง class (เขียน code) จะมี database หรือไม่มีอยู่ก่อนก็ได้ และ “Database First” ที่จะทำการสร้าง model ( reverse engineer) จาก database ที่มีอยู่โดย EF Designer ซึ่ง model ที่ได้จะเก็บอยู่ใน EDMX file (.edmx) สามารถเปิดหรือแก้ไขเพิ่มเติมได้ด้วย EF Designer สำหรับ class ที่ใช้ในโปรแกรมจะถูกสร้างโดยอัตโนมัติจาก EDMX file ข้อมูล Entity Data Model ใน EDMX file อยู่ในรูปแบบ xml สามารถแบ่งออกเป็น 3 ส่วนคือ Storage model, Conceptual model และ Mapping ซึ่งในส่วนของ Storage model จะเป็นข้อมูลรายละเอียดของ entity จาก database เช่น ข้อมูล EntityType ที่ให้รายละเอียดของชื่อของ entity (table ใน database), ชื่อและประเภทของ property (column ของ table ใน database) <EntityType Name=”VF_CONFIG_REPORT”> <Key> <PropertyRef Name=”ID” /> </Key> <Property Name=”ID” Type=”number” Precision=”38″ Scale=”0″ Nullable=”false” /> <Property Name=”REPORT_NAME” Type=”varchar2″ MaxLength=”512″ /> <Property Name=”REPORT_PATH” Type=”varchar2″ MaxLength=”512″ /> <Property Name=”GROUP_TYPE” Type=”number” Precision=”38″ Scale=”0″ /> <Property Name=”SIGN_NUM” Type=”number” Precision=”38″ Scale=”0″ /> <Property Name=”SIGNS” Type=”varchar2″ MaxLength=”128″ /> </EntityType> ข้อมูล EntitySet ที่ประกอบด้วย ชื่อ,ประเภทของ entity, schema และ query ที่ใช้ดึงข้อมูล <EntitySet Name=”VF_CONFIG_REPORT” EntityType=”Self.VF_CONFIG_REPORT” store:Type=”Views” store:Schema=”FINANCE”> <DefiningQuery> SELECT “VF_CONFIG_REPORT”.”ID” AS “ID”, “VF_CONFIG_REPORT”.”REPORT_NAME” AS “REPORT_NAME”, “VF_CONFIG_REPORT”.”REPORT_PATH” AS “REPORT_PATH”, “VF_CONFIG_REPORT”.”GROUP_TYPE” AS “GROUP_TYPE”, “VF_CONFIG_REPORT”.”SIGN_NUM” AS “SIGN_NUM”, “VF_CONFIG_REPORT”.”SIGNS”