Nhibernate 如何删除没有类和映射的表?
我使用的是ASP.NET,它使用我通过Nhibernate创建的用户表。SimpleMembership自动创建成员资格和角色表(不含Nhibernate),该表具有用户表的外键(即:成员资格和角色具有属于我的用户表的外键)。我没有这些成员资格和角色表的类或映射 在我的nunit测试项目中,我正在设置中创建这些表,但在使用以下实现删除所有表时遇到问题。 var se=新的SchemaExport(_配置);se.Drop(真,真)Nhibernate 如何删除没有类和映射的表?,nhibernate,Nhibernate,我使用的是ASP.NET,它使用我通过Nhibernate创建的用户表。SimpleMembership自动创建成员资格和角色表(不含Nhibernate),该表具有用户表的外键(即:成员资格和角色具有属于我的用户表的外键)。我没有这些成员资格和角色表的类或映射 在我的nunit测试项目中,我正在设置中创建这些表,但在使用以下实现删除所有表时遇到问题。 var se=新的SchemaExport(_配置);se.Drop(真,真) Drop()无法删除用户表,因为成员资格表和角色表依赖于用户表。
Drop()无法删除用户表,因为成员资格表和角色表依赖于用户表。我非常确定,在尝试删除用户表之前,我必须删除此成员资格和角色表如何在不创建类和映射的情况下手动删除成员资格和角色表?我个人只需使用
会话删除所有数据即可。删除(“从对象”)代码>但您可以在配置中添加其他表格:
config.CreateMappings(Dialect.GetDialect(config.Properties))
.AddTable(catalog, schema, tablename, null, false, "drop");
可能在所有其他映射之前必须先添加表写入原始sql并删除它们。catalog
和schema
在这个函数中有什么区别?这不是同义词吗?我的意思是,我连接到一个MySql数据库(例如),并在连接字符串中选择一个初始目录
,或一个数据库
。MySql Workbench使用术语Schema
作为“设置为默认模式”功能。我找不到有关此CreateMappings().AddTable
函数的任何文档。AddTable不是常用的公共API。NH有很多扩展点,但很多都没有很好的文档记录。看起来第一个参数(至少对于MySql)可以输入,也就是说,目录可以保留为空。创建字符串“catalog.schema.tablename”时。因此,如果您不想定义目录,只需将null
放在那里。这对我有用。