下面定义了代码第一模型。
项目和TeamMember之间有两种关系:
此模型生成如下所示的项目表定义。
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]));我需要扩展项目与一个外键属性的经理,但无法解决这一点。
public Guid ManagerId { get; set; } // 2
[InverseProperty("ManagedProjects")]
public virtual TeamMember Manager { get; set; } // 2上面的代码不能工作,因为它只是在Project表中生成一个ManagerId字段。我尝试了不同的组合ForeignKey og InverseProperty没有任何运气。
有什么建议吗?
发布于 2014-07-18 21:13:10
接下来的代码应该为多到多创建联接表,“Project”表将在这个表上有外键。
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
}我认为没有联合桌就不可能有多到多的关系。
https://stackoverflow.com/questions/24832375
复制相似问题