1

私は会社のクラスと作業単位のクラスの中に雇用主のリポジトリを置きたいと思っています。以下のテストコードを試してみました。データベースからデータをリロードした後、My Employers Repository が null になります。
遅延読み込みを有効にしています。

public class Company
{
    public int Id { get; set; }
    public string CompanyName { get; set; }
    public ICollection<Employee> Employers { get; set; }
}

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string SureName { get; set; }
}   

TEST CODE :

var company = new Company();

var employee1 = new Employee();
employee.Name = "myFirst employee";

unitOfWork.companys.Add(companys);
unitOfWork.Commit();

unitOfWork.companys.Employers.Add(employee1);

uow.Commit();

これらが機能するようになったら、別の質問が必要です。雇用主に ICollection の代わりに IObservableRepository(implements ICollection) を使用することは可能です。また、すべての会社のすべての雇用主を 1 つのエンティティのようにまとめたいと考えています。

public class UnitOfWork
{
    public IObservableRepository<Company> Company { get { return GetRepo<IObservableRepository<Company>>(); } }
    public IObservableRepository<Employee> Employers { get { return GetRepo<IObservableRepository<Employee>>(); } }
}
4

3 に答える 3

1

ProxyCreationEnabled が無効になりました。他の問題を解決してくれた IronMan84 に感謝します。

于 2013-03-16T21:54:07.950 に答える
1

コード ファイルで Company と Employee の関係をまだ実際に作成していないようです。従業員のコレクションを使用して会社の部分を削除しましたが、関係を完成させるために、従業員にもいくつかのプロパティを含める必要があります。

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string SureName { get; set; }

    [ForeignKey("Company"), Required]
    public int CompanyID { get; set; }

    public virtual Company Company { get; set; }
}
于 2013-03-15T18:54:06.517 に答える