2012-04-25 18 views
0

我正在創建一個自定義員工模塊。一名員工最多可以有三個地址。我試圖關注這篇文章 - http://docs.orchardproject.net/Documentation/Creating-1-n-and-n-n-relations將多個地址附加到一個員工

這就是我在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表單時,我得到具有多個地址的數據。我可以創建一個新的員工內容類型。但我不知道如何創建這三個地址並將其分配給該員工。 有什麼幫助嗎?

謝謝。

回答

2

您的模型基礎知識錯了:如果員工有地址,則應該指向員工的地址,而不是員工的地址。除非你真的永遠不會超過三個,在這種情況下,你可以擁有Address1,Address2和Address3屬性。無論如何,在繼續之前,我建議您閱讀關於關係數據庫中關係表示的更多信息。

+0

我沒在考慮底層的數據庫設計。我試圖儘可能密切關注這篇文章。在Orchard實施1-n關係還有其他的例子嗎?上述鏈接中的地址/狀態示例並不十分有用。 – user471317 2012-05-03 00:31:37

+0

那麼,這不是緊跟着這篇文章,因爲你看到你的關係是向後的,而文章是正確的。你能解釋一下這篇文章如何幫助我,讓我知道你在期待什麼? – 2012-05-03 04:06:25

+0

該文章不容易遵循,地址/國家不是1-n關係的好例子。這是我在文章中看到的,AddressPartRecord有StateRecord,AddressPartRecord表有StateRecord_Id。 'code' public class AddressPartRecord:ContentPartRecord { ... public virtual StateRecord StateRecord {get;組; } ... } SchemaBuilder.CreateTable( 「AddressPartRecord」, 表=>表 ... .COLUMN ( 「StateRecord_Id」) ... ); '代碼' – user471317 2012-05-03 17:21:27