繁体   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