是否有一种简单的方法可以使用字符串为所有生成的表名添加前缀?
惯例
Table.Is(x => "Prefix" + x.EntityType.Name)
仅适用于Entity表(不适用于连接表或子类表)
我似乎无法找到一种简单的方法,让nhibernate创建的每个表都以特定字符串为前缀,而不首先识别将创建表并为每个案例指定规则的所有情况。 EW!
答案 0 :(得分:1)
为此,您必须实施IHasManyToManyConvention
和IJoinedSubclassConvention
,请参阅
public class SubclassConvention : IJoinedSubclassConvention, IHasManyToManyConvention
{
public void Apply(IJoinedSubclassInstance instance)
{
instance.Table("Prefix" + instance.Type.Name);
}
public void Apply(IManyToManyCollectionInstance instance)
{
instance.Table("Prefix" + instance.TableName);
}
}