2016-04-01 14 views
2

私のデータベースには、この問題に関係する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." 

は、どのように私はこのエラーを修正することができますか?おかげ

答えて

0

は、このソリューションのためのクレジットは月'15 Unable to update the EntitySet - because it has a DefiningQuery and no <UpdateFunction> element existにポストバックKavithaレディに行くこれはポストです:

  1. 右、EDMXファイルをクリックして開く]を選択し、XMLエディタ

  2. EDMXにエンティティを見つけます。StorageModels要素

  3. DefiningQuery完全

  4. を削除します
  5. 店の名前を変更:スキーマへのスキーマ=「DBO」=「DBO」(そうでない場合、コードは名前が無効であるというエラーが発生します)

私はこれらの手順に従って、私のエラーメッセージが消えました。この状況が4月16日のEFにまだ残っているのはかなり憂慮すべきことです。私はMany to Many EF機能を試していましたが、それは私のアプリケーションで有用かどうかを確認するためでした。このイライラした経験の後、私はそれを使ったことはないだろう。しかし、パズルを解決するためにKavithaに多くのおかげです!

関連する問題