мульти-отображения сущностей nhibernate - PullRequest
0 голосов
/ 02 марта 2011

Я свободно сопоставил сущность с существующим представлением оракула:

public class MyEntityMap : ClassMap<MyEntity>
{
    public class MyEntityMap()
    {
        ReadOnly();
        SchemaAction.None();
        //mappings
    }
}

Я запрашиваю представление оракула для сущностей и фильтрую их по определенным критериям, скажем, где create_date более 14 дней.Эти объекты должны быть записаны в базу данных для использования в будущем.Для этой цели я создал таблицу, которая является точным клоном представления оракула с точки зрения полей.И я хотел бы отобразить точно такой же MyEntity на мою собственную таблицу.Примерно так:

public class MyHistoricalEntityMap : ClassMap<MyEntity>
{
    public class MyHistoricalEntityMap()
    {
        Table("HistoricalEntities");
        //mappings
    }
}

Кроме того, у меня есть служба, отвечающая за запросы к представлению, но я хочу добавить метод для хранения моих исторических сущностей, как показано ниже:

public class MyEntityService : IMyEntityService
{
    private IRepository<MyEntity> _repository;
    ...    
    public IEnumerable<MyEntity> GetEntities(){...}    
    public void StoreHistoricalEntities(IEnumerable<MyEntity> historicalEntities) {...}
}

Итак, вопрос: как мне указать, что я хочу (или nhibernate должен) использовать MyEntityMap для запросов, а MyHistoricalEntityMap для хранения результатов?Или какое другое решение я могу применить?

Спасибо,

1 Ответ

0 голосов
/ 03 марта 2011

Вы не можете использовать два разных отображения для сущности.

Что вы можете сделать - это использовать пользовательский SQL для загрузки .

...