Текущий префикс компонента Nhibernate - PullRequest
1 голос
/ 04 июня 2009

Есть ли способ установить префикс столбца для компонента на свободном языке. Например:

public class SomeClassMap : ClassMap < SomeClass >
{

    public SomeClassMap()
    {
        CreateMap();
    }

    private void CreateMap()
    {
        WithTable("Class");
        Id(x => x.Id).GeneratedBy.Guid();
        Map(x => x.Name).WithLengthOf(100);

        Component<SomeComponent>(x => x.somecomponent, m =>
        {
            m.Map(x => x.Name).SetAttribute("column", "SomeComponentName");
            m.Map(x => x.Summary).SetAttribute("column", "SomeComponentSummary");
            .... etc ...
        }
     );

Есть ли способ установить префиксы SomeComponent вместо того, чтобы определять их в SetAttribute?

Ответы [ 2 ]

1 голос
/ 08 июня 2009

Нет ничего скрытого. AutoMapping делает это, но не обычное отображение. Я создал проблему , чтобы вы могли отслеживать ее состояние.

1 голос
/ 05 июня 2009

Здесь есть некоторая полезная информация: http://nhforge.org/blogs/nhibernate/archive/2008/09/06/a-fluent-interface-to-nhibernate-part-2-value-objects.aspx, которая, кажется, именно то, что вы хотите сделать.

В частности, метод действия, продемонстрированный в этом примере:

public class EmployeeMap : ClassMap<Employee>
{
    private Action<ComponentPart<Address>> MapAddress(string columnPrefix)
    {
        return a =>
               {
                   a.Map(x => x.AddressLine1, columnPrefix + "AddressLine1");
                   a.Map(x => x.AddressLine2, columnPrefix + "AddressLine2");
                   a.Map(x => x.PostalCode, columnPrefix + "PostalCode");
                   a.Map(x => x.City, columnPrefix + "City");
                   a.Map(x => x.Country, columnPrefix + "Country");
               };
}

public EmployeeMap()
{
    Id(x => x.Id);
    Map(x => x.FirstName).CanNotBeNull().WithLengthOf(20);
    Map(x => x.LastName).CanNotBeNull().WithLengthOf(20);

    Component<Address>(x => x.HomeAddress, MapAddress("Home_"));
    Component<Address>(x => x.WorkAddress, MapAddress("Work_"));
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...