首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF代码优先-使用InverseProperty时如何添加外键属性?

EF代码优先-使用InverseProperty时如何添加外键属性?
EN

Stack Overflow用户
提问于 2014-07-18 19:26:37
回答 1查看 158关注 0票数 0

下面定义了代码第一模型。

项目和TeamMember之间有两种关系:

  1. 多到多的TeamMember可以在许多项目上工作。项目可以有许多TeamMembers。
  2. 一对多项目总是有一个TeamMember作为经理. 公共类项目{ public Guid ProjectId { get;set;} InverseProperty(" ManagedProjects "),需要公共虚拟TeamMember管理器{ get;set;} // 2公共虚拟列表TeamMembers { get;set;} // 1}公共类TeamMember { public Guid TeamMemberId { get;set;}公共虚拟列表项目{ get;set;} // 1 InverseProperty(“管理器”)公共虚拟列表ManagedProjects{ get;set;} // 2}

此模型生成如下所示的项目表定义。

代码语言:javascript
复制
CREATE TABLE [dbo].[Project] (
  [ProjectId]            UNIQUEIDENTIFIER NOT NULL,
  [Manager_TeamMemberId] UNIQUEIDENTIFIER NOT NULL,
  CONSTRAINT [PK_dbo.Project] PRIMARY KEY CLUSTERED ([ProjectId] ASC),
  CONSTRAINT [FK_dbo.Project_dbo.TeamMember_Manager_TeamMemberId] FOREIGN KEY
    ([Manager_TeamMemberId]) REFERENCES [dbo].[TeamMember] ([TeamMemberId]));

我需要扩展项目与一个外键属性的经理,但无法解决这一点。

代码语言:javascript
复制
public Guid ManagerId { get; set; } // 2
[InverseProperty("ManagedProjects")]
public virtual TeamMember Manager { get; set; } // 2

上面的代码不能工作,因为它只是在Project表中生成一个ManagerId字段。我尝试了不同的组合ForeignKey og InverseProperty没有任何运气。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-18 21:13:10

接下来的代码应该为多到多创建联接表,“Project”表将在这个表上有外键。

代码语言:javascript
复制
public class Project
{
    public Guid ProjectId { get; set; }

    public virtual TeamMember Manager { get; set; } // 2

    [InverseProperty("Projects")]
    public virtual List<TeamMember> TeamMembers { get; set; } // 1
}

public class TeamMember
{
    public Guid TeamMemberId { get; set; }

    [InverseProperty("TeamMembers")]
    public virtual List<Project> Projects { get; set; } // 1

    [InverseProperty("Manager")]
    public virtual List<Project> ManagedProjects { get; set; } // 2
}

我认为没有联合桌就不可能有多到多的关系。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24832375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档