2010-01-09 84 views

回答

0

這是非常容易的:

public class IgnoreAttributeConvention : AttributePropertyConvention<IgnoreAttribute> 
{ 
    protected override void Apply(IgnoreAttribute attribute, IPropertyInstance instance) 
    { 
     instance.ReadOnly(); 
    } 
} 

其中IgnoreAttribute是一個簡單/空屬性。

0

instance.ReadOnly()方法告訴FNH不要查找數據庫中屬性的更改。要完全忽略該屬性,您需要調用instance.Access.None()。

3

我試圖用其中的兩個建議,甚至都沒有和創造一個慣例似乎與功能NHibernate工作1.3.0.727

public class IgnoreAttributeConvention : AttributePropertyConvention<IgnoreAttribute> 
{ 
    protected override void Apply(IgnoreAttribute attribute, IPropertyInstance instance) 
    { 
     instance.ReadOnly(); 
    } 
} 


public class IgnoreAttributeConvention : AttributePropertyConvention<IgnoreAttribute> 
{ 
    protected override void Apply(IgnoreAttribute attribute, IPropertyInstance instance) 
    { 
     instance.Access.None(); 
    } 
} 

public class IgnoreAttributeConvention : AttributePropertyConvention<IgnoreAttribute> 
{ 
    protected override void Apply(IgnoreAttribute attribute, IPropertyInstance instance) 
    { 
     instance.Access.None(); 
     instance.ReadOnly(); 
    } 
} 

後來我發現這雖然舊的規定,你不能忽視這個羣體谷歌討論具有約定的屬性,必須通過覆蓋類映射來完成,如果使用自動映射。

https://groups.google.com/forum/?fromgroups#!topic/fluent-nhibernate/PDOBNzdJcc4

這就是老了,不知道它是否仍然是相關的,但是這是我的經驗。我希望這樣可以節省別人試圖使用這個解決方案的麻煩,或者刺激別人指出我可能會出錯的地方。

+0

你有沒有想過如何忽略使用Fluent和Automapping的POCO上特定屬性的映射?甚至現在找到這方面的信息也很困難。 – adaam 2016-06-14 08:53:09