0

一部を制御し、別の部分を制御できないデータベースがあります。EF を使用して両方の部分にアクセスしたいのですが、一部の関係を宣言するのに問題があります。次の 2 つのエンティティを検討してください。

   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 に答える