【发布时间】:2016-03-14 20:10:45
【问题描述】:
我正在尝试删除 NHibernate 中映射表的所有记录,作为通过浏览器进行功能测试的设置的一部分。从其他问题中,我得到了所有映射类的类元数据,这让我得到了表名。从那里我正在对数据库执行 SQL 删除语句。这很好用,除了我有一个未直接映射的连接表,而是作为多对多关系的一部分进行映射。
我需要清除的是这张表,多对多的关系,但我不知道该怎么做。虽然我无法发布确切的映射,但这里是数据库架构的近似值:
BlogPosts
---------
BlogPostId (Primary Key)
Tags
----
TagId (Primary Key)
BlogPostTags
------------
BlogPostId (Foreign Key)
TagId (Foreign Key)
以及 Fluent NHibernate 映射的近似:
public class BlogPostMap : ClassMap<BlogPost>
{
public BlogPostMap()
{
// ...
HasManyToMany(post => post.Tags)
.Table("BlogPostTags")
.ChildKeyColumn("TagId")
.ParentKeyColumn("BlogPostId")
.AsSet()
.Access.CamelCaseField()
.Cascade.All();
}
}
如何在不硬编码表名且不启用级联删除的情况下删除“BlogPostTags”表中的记录?
【问题讨论】:
标签: c# sql-server nhibernate fluent-nhibernate