2015-12-10 9 views
0

Я написал небольшое консольное приложение, которое должно выписывать свойства для данного класса.отображение параметров, используемых в классе NHiberate Класс сопоставления

Он работает на «нормальных» классах, но он просто показывает пустой список, когда я пытаюсь передать класс класса NHibernate.

Пройдя через отладчик в Visual Studio, я просто вижу пустые значения и одну ошибку без остановки: «Никакой дополнительной информации об этом объекте не обнаружено».

Есть ли способ получить параметры/свойства, используемые в классе ClassMapping?

Спасибо!

класс

Mapping:

public class CorporateDataMapping : ClassMapping<CorporateData> 
{ 
    public CorporateDataMapping() 
    { 
     Schema("data"); 
     this.EnhancedSequenceId(x => x.Id); 
     ManyToOne(x => x.CEO, pm => pm.NotNullable(true)); 
     Property(x => x.Sign, pm => pm.NotNullable(true)); 
     Property(x => x.WeatherType, pm => pm.NotNullable(true)); 
     Property(x => x.EncodingLanguage); 
     Property(x => x.ZipCode); 
     Property(x => x.PhysicalLocation); 
     Property(x => x.Extension, pm => pm.NotNullable(true)); 
     Property(x => x.DisplayAllYear, pm => pm.NotNullable(true)); 
    Property(x => x.Graphics, pm => pm.NotNullable(true)); 
     Property(x => x.InstallDate, pm => pm.NotNullable(true)); 
    } 
} 

Программа, которая suppposed, чтобы отобразить все свойства класса:

static void Main(string[] args) 
    { 
     CorporateDataMapping mapping = new CorporateDataMapping(); 
     printProperties(mapping); 

     Console.ReadLine(); 
    } 

    public static void printProperties(Object jsonObject) 
    { 
     JObject json = JObject.FromObject(jsonObject); 
     Console.WriteLine("Classname: {0}\n", jsonObject.ToString()); 
     Console.WriteLine("{0,-20} {1,5}\n", "Name", "Value"); 
     foreach (JProperty property in json.Properties()) { 
      Console.WriteLine("{0,-20} {1,5:N1}", property.Name, property.Value); 
     } 
    } 
} 

ответ

1

Свойства преобразованного класса не становятся частью картографа, следовательно, они не могут быть получаемый отражением на классе сопоставления. Читайте в классе ModelMapper NHibernate. Некоторые виды приведены в следующих ссылок (вы можете найти больше прибегая к помощи "NHibernate modelmapper beforemapproperty"):

http://nhibernate.info/blog/2011/09/04/using-nh3-2-mapping-by-code-for-automatic-mapping.html

Nhibernate : Map all decimals with the same precision and scale