我使用流畅的nHibernate作为我的映射,如下所示:
public class ContentTagMap: ClassMap<Employee>
{
public EmployeeMap()
{
Id(t => t.Id);
Map(t => t.Name);
HasManyToMany(t => t.Company);
}
}
public class CompanyMap: ClassMap<Company>
{
public HelpMap()
{
Id(h => h.Id);
Map(h => h.CompanyName).Length(6000);
Map(h => h.address).Length(6000);
HasManyToMany(h => h.Employee);
}
}
这些映射产生Employee Table,Company Table和EmployeeToCompany Table
员工表
Id Name
1 John
2 MAX
公司表
Id CompanyName address
1 HTC ABC
2 HTC2 India
EmployeeToCompany表
Employee_Id Company_Id
1 1
2 1
如何删除ID为1的员工?
答案 0 :(得分:1)
除非我误解你的问题,否则你应该问:
Fluent NHibernate只是一个帮助实体映射的工具。 NHibernate 是您用来创建,读取,更新和删除数据的方法。无论如何:
9.5。删除持久对象
ISession.Delete()将从数据库中删除对象的状态。的 当然,您的应用程序可能仍然会引用它。所以这是 最好将Delete()视为使持久化实例成为瞬态。
您可能还希望在映射中的多对多关系(HasManyToMany
)上定义级联样式。
如果您在关系的一侧删除实体时多次使用Cascade.SaveUpdate
,则会删除该实体和任何关系。如果您删除了关联(例如,如果您从Employee
删除Company
),则只会删除关系(EmployeeToCompany
)。这是我通常发现在多对多关系中工作的东西。
请阅读本文,了解有关映射和在Fluent NHibernate中使用多对多关系的更多详细信息。
how to keep many to many relationships in sync with nhibernate?