none
Entity Framework 4 Table per Base Type RRS feed

  • คำถาม

  • อยากทราบว่ามีToolไหนสามารถสร้าง entity ในออกมาแบบTable per Base Typeบ้างไหมครับ
    คือ ผมสร้างใน EF 4 เป็นแบบPOCOครับ คือสร้างdiagram แล้วค่อยgenerate SQL ไปสร้างเป็นdatabase
    เช่นผมมีclassบัญชีฝาก classบัญชีเงินกู้บ้าน classบัญชีเงินกู้รถ ผมจะสร้างแบบให้Inheritanceจะclassบัญชี
    แต่ในdatabaseจะมีแต่tableบัญชีเท่านั้นครับ

    ที่ผมได้ทดลองกับ ef4ยังเป็นการแยกTableอยู่ครับ

    หากมีความเห็นว่าpatternนี้ไม่ควรใช้รบกวนช่วยแนะนำหน่อยนะครับ

    24 เมษายน 2554 8:46

คำตอบ

ตอบทั้งหมด

  • ใน EF4 สามารถทำได้ครับ แต่ชื่อเรียก จะเป็น Type Per Hierachy (TPH) ครับ

     


    อ่านเพิ่มเติม Link

    How to: Define a Model with Table-per-Hierarchy Inheritance
    http://msdn.microsoft.com/en-us/library/bb738443.aspx
    • ทำเครื่องหมายเป็นคำตอบโดย jfnet 24 เมษายน 2554 9:08
    • ยกเลิกการทำเครื่องหมายเป็นคำตอบโดย jfnet 24 เมษายน 2554 11:00
    • ทำเครื่องหมายเป็นคำตอบโดย jfnet 24 เมษายน 2554 11:08
    24 เมษายน 2554 9:01
  • ขอบคุณครับ  กำลังหาอ่านอยู่ครับว่าต้องทำไง ต้องไปset ตรงไหนบ้างถึงจะได้ครับ

    • ทำเครื่องหมายเป็นคำตอบโดย jfnet 12 พฤษภาคม 2554 6:44
    24 เมษายน 2554 9:08
  • ผลที่ได้คือ-- --------------------------------------------------
    -- Creating all tables
    -- --------------------------------------------------

    -- Creating table 'EntityBases'
    CREATE TABLE [dbo].[EntityBases] (
        [Id] int IDENTITY(1,1) NOT NULL,
        [update] nvarchar(max)  NOT NULL,
        [name_1] nvarchar(max)  NULL,
        [createUser] nvarchar(max)  NULL,
        [createDate] datetime  NULL,
        [updateUser] nvarchar(max)  NULL,
        [updateDate] datetime  NULL,
        [type] nvarchar(max)  NULL
    );
    GO

    -- Creating table 'EntityBases_Entity1'
    CREATE TABLE [dbo].[EntityBases_Entity1] (
        [Id] int  NOT NULL
    );
    GO

    -- Creating table 'EntityBases_Entity2'
    CREATE TABLE [dbo].[EntityBases_Entity2] (
        [Id] int  NOT NULL
    );
    GO
    ครับ

    แค่ผมต้องการให้สร้างแค่

    -- --------------------------------------------------
    -- Creating all tables
    -- --------------------------------------------------

    -- Creating table 'EntityBases'
    CREATE TABLE [dbo].[EntityBases] (
        [Id] int IDENTITY(1,1) NOT NULL,
        [update] nvarchar(max)  NOT NULL,
        [name_1] nvarchar(max)  NULL,
        [createUser] nvarchar(max)  NULL,
        [createDate] datetime  NULL,
        [updateUser] nvarchar(max)  NULL,
        [updateDate] datetime  NULL,
        [type] nvarchar(max)  NULL
    );
    GO

    ครับ

    แล้วใน [type] จะใส่ว่าเป็นEntity1,Entity2ครับ

    24 เมษายน 2554 11:08