Как вы можете сделать отображение один ко многим с помощью FluentMap?

Я только начал использовать FluentMap, и мне нужно сопоставить один и тот же столбец с 2 свойствами, поскольку им нужно одинаковое значение. Вот моя карта:

internal class DefaultsMap : EntityMap<Defaults>
{
    internal DefaultsMap()
    {
        Map(d => d.HistoricalValues.Cost).ToColumn("defaultValue");
        Map(d => d.FutureValues.Cost).ToColumn("defaultValue");
        //other mappings...
    }
}

Это приводит к следующей ошибке:

Exception: Duplicate mapping detected. Property 'Cost' is already mapped to column 'Cost'.

Похоже, я не могу сопоставить один и тот же столбец с двумя разными свойствами, или это потому, что сами свойства называются одним и тем же (стоимость)?

2 ответа

Решение

Согласно ответу Амита Джоши, это не похоже на то, что это возможно в его нынешнем виде, так как картограф должен иметь разные имена. К сожалению, я не могу переименовать столбец только для одного из них, так как запрос возвращает все значения из общей таблицы, чтобы создать список объектов по умолчанию.

Как обходной путь, в этом случае я смог достичь того, что хотел, назначив свойству для одного из них и свойству "Value" свойства "Cost" для другого, например:

Map(d => d.HistoricalValues.Cost).ToColumn("defaultValue");
Map(d => d.FutureValues.Cost.Value).ToColumn("defaultValue");

Не с щегольским; У меня была эта проблема с NHibernate.

Я не уверен в этом, но, возможно, инструмент mapper хранит ваши отображения в некотором роде, если ключ-значение, как структура данных.

Тем не менее, вы не можете хранить два разных ключа с одинаковым именем.

Даже если это не так, очевидно, что картограф должен требовать отдельного именования, чтобы определить, что карта отличается. Он не смотрит на класс, для которого определено свойство; это просто смотрит на имя свойства.

Вы можете переименовать свои свойства, чтобы назвать их явно, как показано ниже:

HistoricalValues.Cost => HistoricalValues.HistoricalCost
FutureValues.Cost => FutureValues.FutureCost
Другие вопросы по тегам