public class Team
{
public Team()
{
TeamSchemes = new HashSet<Scheme>();
TeamUsers = new HashSet<PLUser>();
}
public int ID { get; set; }
public string Name { get; set; }
[ForeignKey("Office")]
public int OfficeID { get; set;}
public virtual Office Office { get; set; }
[ForeignKey("TeamLeader")]
public int TeamLeaderID { get; set; }
public virtual PLUser TeamLeader { get; set; }
public virtual ICollection<Scheme> TeamSchemes { get; set; }
public virtual ICollection<PLUser> TeamUsers {get;set;}
}
私はチームオブジェクトとユーザーオブジェクトを持っています。私が欲しい私はこれを修正する方法:System.Data.SqlClient.SqlException:無効な列名 'TeamID'
関係は以下のとおりです。 チームTeamLeader(ユーザー) チームは、そのチームここ
にすることができ、多くのユーザーを持っているを持っていることは、私はこれらの関係のための私のUserオブジェクトに持っているものである
私はどこかからTEAM_IDと呼ばれる余分な列を得ていたcodeFirst移行を実行するときに
[ForeignKey("Team")]
public int? TeamID { get; set; }
public virtual Team Team { get; set; }
public virtual ICollection<Team> TeamsLeading { get; set; }
は、しかし、私は明示的にそうようにModelBuilderの中の私の関係を次のように述べています
modelBuilder.Entity<Team>().HasRequired(x => x.TeamLeader).WithMany(u=>u.TeamsLeading).HasForeignKey(t=>t.TeamLeaderID);
modelBuilder.Entity<PLUser>().HasOptional(x => x.Team).WithMany(t=>t.TeamUsers).HasForeignKey(x => x.TeamID);
modelBuilder.Entity<PLUser>().HasMany(u => u.TeamsLeading).WithRequired(t => t.TeamLeader);
移行コードが正常に実行され、意図した結果が示されているようです。しかし、アプリケーションを実行すると、次のエラーが発生し、アプリケーションは実行されません。
System.Data.SqlClient.SqlException:無効な列名 'TeamID'です。
モデルの関係上すべてのヘルプ/固定問題
問題を解決したようです –