2011-06-17 84 views
3

是否有一種簡單的方法來爲所有生成的表名添加字符串?將字符串前綴到所有生成的表名 - FluentNHibernate

公約

Table.Is(x => "Prefix" + x.EntityType.Name) 

僅適用於實體表(沒有作爲連接或子類表)

我似乎無法找到一個簡單的方法,有每一個表的NHibernate創建時需要使用特定的字符串作爲前綴,而不必首先標識將創建表並指定每個案例的規則的所有情況。 EW!

回答

1

爲此,你必須實現IHasManyToManyConventionIJoinedSubclassConvention看到

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); 
    } 
} 
+0

所以,你必須實施,將創建一個表,然後每個物體的公約? 完整列表將是實體,子類和多對多? – MushinNoShin

+0

@MushinNoShin ...和價值收藏。我還沒有找到任何其他方式 – Firo

+0

要接受這是一個「你不能以一種過於簡單的方式做到這一點」。不幸的;我討厭打字。 – MushinNoShin

相關問題