2016-01-21 23 views
5

私は、親オブジェクトとその子を返すようにしようとすると、次のエラーEntity Frameworkコードの子オブジェクトを最初に返すエラー:式を評価できません。操作はサポートされていません。不明なエラー:0x80070057が

Unable to evaluate the expression. Operation not supported. Unknown error: 0x80070057

を得続けます。

データベースは、ビルド、シード、および私が見る限り、すべての関係が正しく定義されています。私はちょうどテストをして、問題を示す目的のために小さいモデルを構築しました:

親オブジェクト:

public class Person 
{ 
    [Key] 
    [Column(Order = 1)] 
    public int Id { get; set; }  

    [StringLength(100)]  
    public string Name { get; set; } 

    public DateTime DateModified { get; set; } 
    public DateTime DateCreated { get; set; } 

    public virtual ICollection<Job> Jobs { get; set; } 
} 

子オブジェクト:

public class Job 
{ 
    [Key] 
    [Column(Order = 1)] 
    public int Id { get; set; } 

    [StringLength(100)] 
    public string Name { get; set; }  

    public int PersonId { get; set; } 

    [ForeignKey("PersonId")] 
    public virtual Person Person { get; set; } 
} 

_context.Person作品を返却している人のリストを返します。 nullジョブの場合

_context.Person.Include(o => o.Jobs)が上記のエラーをスローします。

これは私が知っている単純なもので、2つの非常にシンプルなテーブルですが、このモデルのシナリオを何も問題なく作り出したので、どこに問題があるのか​​分かりません。私はプロジェクトとEFの依存関係を再構築することを考えていますが、この問題を理解し、可能であれば修正することを好むでしょう。

答えて

1

次のことを引っ張って、いくつかのかなりの髪は問題を克服した後:

_contextのリポジトリ方法:

var people = _repository.GetPeople().ToList(); 

public IQueryable<Person> GetPeople() 
    { 
     return _context.Person.Include(s => s.Jobs); 
    } 

呼び出し元のコードは、ちょうどToListメソッド()メソッドを必要とpeople変数には、それぞれジョブオブジェクトのリストを持つpersonオブジェクトのリストが含まれています。 Pheeew !!

関連する問題