私のデータベースには、この問題に関係する3つのテーブルEmployee、Reports、EmployeeReportsがあります。唯一の他の2つのテーブルへの外部キーとしてEmployeeReportsとして、EFは、ここでのショーなど、多くの関係に多くのエンティティを変換しますASP MVC多対多編集
public Employee()
{
this.Reports = new HashSet<Report>();
}
public int EmployeeID { get; set; }
public string EmployeeName { get; set; }
public int EmployerIdFk { get; set; }
public virtual Employer Employer { get; set; }
public virtual Passport Passport { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage "Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Report> Reports { get; set; }
}
}
public partial class Report
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Report()
{
this.Employees = new HashSet<Employee>();
}
public int ReportID { get; set; }
public string ReportName { get; set; }
public string ReportFilePath { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage ("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Employee> Employees { get; set; }
}
私はへの多くを使用して、選択したレポートに選択した従業員を関連付けるためにしようとしています多くのアレンジメント(1のIDを持つ従業員とレポートがあります)。
int eID, rID = 1;
var employee = db.Employees.Include(e => e.Reports).FirstOrDefault(e => e.EmployeeID == eID);
var report = db.Reports;//.Single(e => e.ReportID == rID);
foreach (var item in report)
{
if (item.ReportID == rID)
{ employee.Reports.Add(item); }
}
db.SaveChanges();
私は、このコードには多くのバリエーションを試してみたが、それはいつもと一緒にERROR:
" Unable to update the EntitySet 'EmployeeReports' because it has a DefiningQuery
and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation."
は、どのように私はこのエラーを修正することができますか?おかげ