0

我有一个数据库,我可以控制其中的一部分,而无法控制另一部分。我想使用 EF 来访问这两个部分,但是我在声明某些关系时遇到了麻烦。考虑以下两个实体:

   public class AnswerSet {
      public AnswerSet() { WeeklyAnswerSets=new HashSet<WeeklyAnswerSet>(); }
      public int Id { get; set; }
      public string StudentCode { get; set; }
      public string InstructorCode { get; set; }
      public string AssignedDateOrig { get; set; }
      public virtual ICollection<WeeklyAnswerSet> WeeklyAnswerSets { get; set; }

      public virtual ICollection<INSTSTUD> InstStuds { get; set; }
   }

   public class INSTSTUD {
      [Key]
      public int FOCLIST { get; set; }
      public string ININSCD { get; set; }
      public string INSTUCD { get; set; }
      public string ASSIGNEDDATE { get; set; }
   }

我可以控制 AnswerSet 但不能控制 INSTSTUD。并且 INSTSTUD.FOCLIST 不能用作 AnswerSet 中的永久外键。相反,如果我想从一个 AnswerSet 中查找一个 INSTSTUD,我需要使用这样的连接StudentCode=INSTUCD and InstructorCode=ININSCD and AssignedDateOrig=ASSIGNEDDATE

因此,鉴于这些限制,我可以放入什么才能OnModelCreating使我的导航属性AnswerSet.InstStuds正常工作?

4

1 回答 1

0

简短的回答,是你不能。如果您没有永久主键,则不能使用导航属性。您将不得不手动进行连接,并希望没有密钥违规。

于 2013-08-13T19:49:22.583 回答