1
我'尝试设置为数据库功能NHibernate映射如下所示:功能NHibernate映射表用于在多个多到多的关系
Campaign Table
Id
Name
Category Table
Id
Campaign_id
Name
Customer Table
Id
Name
Phone
...
SalesMan Table
Id
Name
Phone
...
CustomerSalesManCategory Table
Id
Customer_id
SalesMan_id
Category_id
的CustomerSalesManCategory表的列有作为foreignKeys客户的主键,SalesMan,类别。
广告活动有一个与类别一对多的关系
客户有许多与分类
许多关系的客户有许多与业务员一对多的关系,但也与分类
相关那就是:一位顾客被分配一个推销员对一个特定的类别,因此在CustomerSalesManCategory表一个正确的输入应该完全反映(所有3个ID的人口)
通过我现在使用的映射,可以在SalesMan_id或Category_id上使用NULLS在CustomerSalesManCategory中插入条目,这对我提供的映射是正确的。
但是,我无法弄清楚有关FluentNhibernate做的工作正确done..Single对于客户的SaveOrUpdate CustomerSalesManCategory表中的单一特征。
任何帮助非常appriciated。 这里是我当前的映射:
public class CampaignMap : ClassMap<Campaign>
{
public CampaignMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.CreationDate);
HasMany(x => x.CampaignsCategories).Inverse().Cascade.AllDeleteOrphan();
}
}
public class CategoryMap : ClassMap<Category>
{
public CategoryMap()
{
Id(x => x.Id);
Map(x => x.Extension);
References(x => x.Campaign);
HasManyToMany(x => x.CustomersAssginedInCategory).Inverse().Table("CustomerSalesManCategory");
}
}
public class CustomerMap : ClassMap<Customer>
{
public CustomerMap()
{
Id(x => x.Id);
Map(x => x.CallingName);
Map(x => x.OfficialName);
Map(x => x.Year);
Map(x => x.Description);
HasManyToMany(x => x.CustomerCategories).Table("CustomerSalesManCategory");
HasManyToMany(x => x.CustomerSalesMen).Table("CustomerSalesManCategory");
}
}
public class SalesManMap : ClassMap<SalesMan>
{
public SalesManMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Email);
Map(x => x.Phone);
Map(x => x.Description);
HasManyToMany(x => x.CustomersAssignedTo).Inverse().Table("CustomerSalesManCategory");
}
}
感谢名单非常为我所用的实体开发工具的免费版本的reply-和类中它创建了一个intermidiate类,这就是CustomerSalesManCategory类。这个类有一个Customer类和一个SalesMan对象,用于启动。我从那里继续。 – Nikos 2012-04-27 13:55:40