0

MVC4 アプリケーションを構築し、Entityframework を使用しています。コードファーストモデルを使用しています。

私のプロジェクトクラスは次のとおりです。

public class Project
    {
     [Key]
       public int ProjectId { get; set; }
       public ProjectContact ApprovalContact { get; set; }

        public ProjectContact BillContact { get; set; }

        public ProjectContact ProjectContact { get; set; }
     }

私の ProjectContact クラスは次のとおりです。

public class ProjectContact
    {
        [Key]
        public int ProjectContactId { get; set; }
        public string JobTitle { get; set; }
        public string Number { get; set; }
        public string ProjectContactMSFNo { get; set; }
        public string FullName { get; set; }

    }

生成されたEntityFramework データベースで最初にコードを使用している間は

SELECT [ProjectId]
      ,[ApprovalContact_ProjectId]
      ,[BillContact_ProjectId]
      ,[ProjectContact_ProjectId]
  FROM [Db].[dbo].[Projects] 

今までは正常に動作しています

[ApprovalContact_ProjectId][ApprovalContact ] に変更 し、プロジェクトをデータベースに挿入しようとすると、エラーが発生しました: 列名 'ApprovalContact_ProjectContactId' が無効です。

modelBuilderでモデル名をマップしようとすると、エラーが発生します:Models.ProjectContact は null 不可でなければなりません

[ApprovalContact_ProjectId][ApprovalContact ]にマップするようにDbContextに指示する方法は??

4

1 に答える 1

1

次の注釈を試しましたか

[ForeignKey("ApprovalContactID")]
public ProjectContact ApprovalContact { get; set; }

私はこれを見つけました: Entity Framework Code First : how to annotate a foreign key for a "Default" value?

また、 https ://entityframework.codeplex.com/workitem/1226 もご覧になることをお勧めします 。

于 2013-10-30T11:44:49.483 に答える