2012-04-25 3 views
0

私はカスタム従業員モジュールを作成しています。従業員は最大3つの住所を持つことができます。私はこの記事に従おうとしています - http://docs.orchardproject.net/Documentation/Creating-1-n-and-n-n-relations1人の従業員に複数の住所を添付する

これは私がMigrations.csで持っているものです。

SchemaBuilder.CreateTable("EmployeeRecord", 
     table => table 
      .ContentPartRecord() 
      .Column<int>("EmployeeId") 
      ... 
      .Column<int>("AddressRecord_Id") 
     ); 


SchemaBuilder.CreateTable("AddressRecord", 
    table => table 
     .Column<int>("Id", column => column.PrimaryKey().Identity()) 
     ... 
    ); 

ここにモデルです。

public class EmployeeRecord : ContentPartRecord { 
    public virtual int EmployeeId { get; set; } 
    ... 
    public virtual AddressRecord AddressRecord { get; set; } 
} 

public class AddressRecord { 
    public virtual int Id { get; set; } 
    ... 
} 

create-new-employeeフォームが送信されると、複数のアドレスを持つデータが取得されます。新しい従業員のコンテンツタイプを作成することができます。しかし、3つのアドレスを作成してその従業員に割り当てる方法がわかりません。 ヘルプがありますか?

ありがとうございました。

答えて

2

モデルの基本は間違っています。従業員に住所がある場合は、その住所に従業員ではなく従業員を指すアドレスです。実際には3つ以上のアドレスを持たない場合を除き、Address1、Address2、およびAddress3プロパティを持つことができます。いずれにしても、作業を進める前にリレーショナルデータベースのリレーションシップ表現についてもう少し詳しくお読みになることをお勧めします。

+0

私は基本的なデータベース設計については考えていませんでした。できるだけ早く記事に従おうとしていました。オーチャードに1-n関係を実装する上での他の例はありますか?上記のリンクのAddress/Stateの例はそれほど役に立ちませんでした。 – user471317

+0

さて、それは記事を厳密には完全には追っていません。記事が役に立たないことを説明して、あなたが期待していることを知っていますか? –

+0

記事は簡単ではありませんが、アドレス/州は1-n関係の良い例ではありません。これは私がこの記事で見ているもので、AddressPartRecordにはStateRecordがあり、AddressPartRecordテーブルにはStateRecord_Idがあります。 'code' パブリッククラスAddressPartRecord:ContentPartRecord { ... パブリッククラスStateRecord StateRecord {get;セット; } ...} SchemaBuilder.CreateTable( "AddressPartRecord"、 テーブル=>テーブル ... .Column ( "StateRecord_Id") ...)。 'code' – user471317

関連する問題