2009-08-30 9 views
3

既存のデータベースに既存のasp.netメンバシップとロールテーブルがあり、Fluent Nhibernateでそれらを新しいエンティティにマッピングしています。Fluent Nhibernateスキーマから一部のテーブルを除外する

また、Fluent Nhibernateから直接スキーマを生成し、生成されたSQLスクリプトを手動で微調整して既存のテーブルを除外します。

Fluent Nhibernateに、特定のテーブルの生成を除外することはできますか?

答えて

4

SchemaAction.None()あなたのClassMapに。

+0

? SchemaAction.None()を挿入するだけです。動かない。 – Ronnie

+0

マッピングオーバーライドでは使用できません。 –

0

別のオプションは、属性を作成することです、

public class DoNotAutoPersistAttribute : Attribute 
{ 
} 

はその後AutoPersistenceModelGeneratorにあなたがAddEntityAssemblyのWHERE句で、この属性をチェックすることができ言います。

0

私は属性+大会でこれを管理している:私はSchemaAction列挙を参照してください、しかし、どこ私は私のクラスマップに入れない

public enum SchemaAction 
    { 
    None 
    } 


[Serializable] 
[AttributeUsage(AttributeTargets.Class)] 
public class SchemaActionAttribute : Attribute 
{ 
    private readonly SchemaAction schemaAction = SchemaAction.None; 

    public SchemaActionAttribute() 
    { 
    } 

    public SchemaActionAttribute(SchemaAction schemaAction) 
    { 
     this.schemaAction = schemaAction; 
    } 

    public SchemaAction GetSchemaAction() 
    { 
     return schemaAction; 
    } 
    } 

    /// <summary> 
    /// overrides the default action for entities when creating/updating the schema 
    /// based on the class having a Schema attribute (<see cref="SchemaActionAttribute" />) 
    /// </summary> 
    public class SchemaActionConvention : IClassConvention 
    { 
    public void Apply(IClassInstance instance) 
    { 

     object[] attributes = instance.EntityType.GetCustomAttributes(true); 
     foreach (object t in attributes) 
     { 
     if (t is SchemaActionAttribute) 
     { 
      var a = (SchemaActionAttribute) t; 
      switch(a.GetSchemaAction()) 
      { 
      case SchemaAction.None: 
       instance.SchemaAction.None(); 
       return; 
      default: throw new ApplicationException("That schema action:" + a.GetSchemaAction().ToString() + " is not currently implemented."); 
      } 

     } 
     } 
    } 
    } 

... 

[SchemaAction(SchemaAction.None)] 
public class TextItem : Entity 
    ... 
関連する問題