2009-08-19 12 views
1

私は亜音速を使うのは初めてです。SubSonic 3 - 単純なリポジトリ - 1対多の関係

レッツは、私はこれらのクラスを持っていると言う:

public class Store 
{ 
    public int Id { get; set; } 
    public String Name { get; set; } 
} 

public class Employee 
{ 
    public int Id { get; set; } 
    public String Name { get; set; } 
} 

従業員が雇用された日付と店舗に関連しています。これは、データベースに私がStoreId、社員、開始日、終了日

UPDATEで真ん中のテーブルを持っていることを意味し

従業員が2009年1月1日から2009年4月4日と仕事にStoreAに作業することができますStoreBの2009年4月5日から...そして私は、私のデータテーブルが従業員のすべての情報を、従業員が彼が働いている店を変更するたびに繰り返すことを望んでいません。この例では従業員は名前だけを持っていますが、従業員には10のプロパティ(住所、年齢、性別など)があります。

どのように達成できますか?あなたが実際に店に従業員レコードに参加する多対多の関係が必要になります

public class Store 
{ 
    public int Id { get; set; } 
    public String Name { get; set; } 
} 

public class StoreEmployee 
{ 
    public int Id { get; set; } 
    public Employee Employee { get; set; } 
    public Store Store { get; set; } 
    public DateTime HiredDate { get; set; } 
} 

public class Employee 
{ 
    public int Id { get; set; } 
    public String Name { get; set; } 
} 

答えて

1

開始日と終了日のペイロードを含むレコード。

オブジェクトは、次のようになります。カップルのエラーがあるかもしれないので、

public class Store 
{ 
    public int Id { get; set; } 
    public String Name { get; set; } 
} 

public class Employee 
{ 
    public int Id { get; set; } 
    public String Name { get; set; } 
    public IList<EmploymentTerm> EmploymentTerms { get; set; } 
} 

public class EmploymentTerm 
{ 
    public int Id { get; set; } 
    public Store Store { get; set; } 
    public Employee Employee { get; set; } 
    public DateTime? StartDate { get; set; } 
    public DateTime? EndDate { get; set; } 
} 

は、このフリーハンドをしました。

+0

私は間違って自分自身を表現するかもしれません。私は、従業員が2009年1月1日から2009年4月4日までStoreAに働きかけ、2009年4月5日からStoreBで働くことができることを意味します...そして、私のデータテーブルが私の従業員は、従業員が彼が働いている店を変更するたびに。この例では従業員は名前しか持っていませんが、従業員には10のプロパティ(住所、年齢、性別など)があります。 – Melursus

+0

+1これは亜音速サイトの情報が不足していると私に助けてくれました。 – Andrew

0

:あなたのコメントと次のような何かをしたいように見える更新質問に基づいて