【发布时间】:2014-06-17 20:10:07
【问题描述】:
我有一个 Project 表,其中一些字段指向 Participant 表,但当然都有不同的含义:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace iMaSys.Models
{
public class Project
{
[Key]
public int ProjectID { get; set; }
[Required]
[StringLength(128)]
[Display(Name = "Omschrijving")]
public string Description { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
[Display(Name = "Startdatum")]
public DateTime StartDate { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
[Display(Name = "Einddatum")]
public DateTime? EndDate { get; set; }
public Boolean Active { get; set; }
[Display(Name = "Mediation Casenummer")]
public string Mediation_casenr { get; set; }
public Participant CaseManager { get; set; }
public Participant Supervisor { get; set; }
public Participant Party_1 { get; set; }
public Participant Party_2 { get; set; }
public Participant Client { get; set; }
public Participant InterventionManager { get; set; }
public Participant Mediator { get; set; }
public virtual ProjectCategorySub ProjectCategorySubject { get; set; }
}
}
Casemanager、Supervisor、Party_1 等字段都指向 Participant。在 Particpant 中,我添加了 InverseProperties 来告诉框架项目和参与者之间的联系:
[InverseProperty("Mediator")]
public List<Project> ProjectMediators { get; set; }
[InverseProperty("Supervisor")]
public List<Project> ProjectSupervisors { get; set; }
etc. etc.
添加迁移和更新数据库后,项目中的字段命名如下:
CaseManager_ParticipantID 等。我只需要 CaseManagerID 指向 Participant_ParticipantID。我尝试了几件事,但我似乎不明白如何让它工作。
我被这个卡住了,谁能指出我正确的方向?
最好的问候,Janno Hordijk
【问题讨论】:
-
或许this?
-
我更新了我的问题以包含 InverseProperties。有人可以帮我吗?
-
别忘了接受。
标签: model-view-controller foreign-key-relationship