将多个地址附加到一个员工

时间:2012-04-25 22:51:44

标签: orchardcms

我正在创建一个自定义员工模块。员工最多可以有三个地址。我试着关注这篇文章 - 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表单时,我会获得包含多个地址的数据。我可以创建一个新的员工内容类型。但我不确定如何为该员工创建和分配三个地址。 有什么帮助吗?

感谢。

1 个答案:

答案 0 :(得分:2)

您的模型的基础知识是错误的:如果员工有地址,那么应该指向员工的地址,而不是地址的员工。除非你真的永远不会有超过三个,在这种情况下你可以拥有Address1,Address2和Address3属性。在任何情况下,我建议您在继续之前阅读关于关系数据库中关系表示的更多信息。