SubSonic 3 - 简单存储库 - 一对多关系

时间:2009-08-19 14:08:57

标签: subsonic subsonic3 one-to-many

这是我第一次使用Subsonic。

假设我有这些课程:

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,EmployeeId,StartDate,EndDate的中间表

更新

员工可以从2009-01-01到2009-04-04在StoreA工作,并从2009-04-05到StoreB工作......我不希望我的数据表重复所有信息每当员工改变他为之工作的商店时,我的员工。在这个例子中,员工只有一个名字,但是假设员工有10个房产(地址,年龄,性别......)

我怎么能实现这个目标?

2 个答案:

答案 0 :(得分:1)

根据您的评论和更新后的问题,您似乎需要以下内容:

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 :(得分:0)

您实际上需要一个多对多关系,它会将员工记录加入到商店记录中,并具有开始和结束日期的有效负载。

对象将如下所示:

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; }
}

这是徒手写的,所以可能会有一些错误。