簡體   English   中英

實體框架代碼優先中基於條件的關系

[英]Relationship on the basis of Condition in Entity Framework Code First

我需要在三個實體Party - Organization Party - Person之間建立關系

但是一次,聚會將是下面的組織或人。

conditionalRelations: {    
    PartyTypeCode: {
        "1": { entity: "Person" },
        "2": { entity: "Organization" }
      }
}

如果party type為1,則關聯將為Party ->Person
如果方類型為2,則關系將為方Party-> Organization

我需要在ASP.NET MVC4 scaffolding配置此關系。(實體框架代碼優先)

自從我執行EF Code First以來已經有一段時間了,但是我相信這應該(或多或少)能夠成功(因為這是您要創建的新數據庫):

abstract class Party {
    int Field1 {get;set;}
    int Field2 {get;set;}

    virtual ICollection<PartyType1Party> Parties {get;}
}

class Person {
    string Name {get;set;}
    int Age {get;set;}
}

class OrganizationParty {
    int Something {get;set;}
    int OtherThing {get;set;}

    virtual ICollection<PartyType2Party> Parties {get;}
}

class PartyType1Party : Party {
    Person OrganizerOrSomeRandomPropertyName {get;set;}
}

class PartyType2Party : Party {
    OrganizationPart Organization {get;set;}
}

class Context : DbContext {
    DbSet<Party> Parties {get;set;}
    DbSet<Person> Persons {get;set;}
    DbSet<OrganizationParty> OrganizationParties {get;set;}
}

與其手動跟蹤類型1和類型2的各方,不如讓EF為您處理(通過您所處理的類)。 如果您已經有一個現有數據庫並且需要遵循它的原則,那么我不知道如何解決它(盡管我前一段時間做了類似的事情,但我不記得如何)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM