Я новичок в NHibernate - он работал отлично, пока я не попытался применить его к одной из наиболее распространенных конструкций, которые мы используем в базе данных Oracle 10g на работе.
Я хочу иметь объект доменаследующим образом:
public class SentEmailHistory
{
public virtual int Id { get; set; }
public virtual string EmailAddress { get; set; }
...
}
База данных, с которой я работаю, на самом деле выглядит следующим образом:
SEND_EMAIL_HIST
================
SEND_EMAIL_HIST_ID (PK)
EMAIL_ADDR_ID (FK to EMAIL_ADDR)
...
EMAIL_ADDR
============
EMAIL_ADDR_ID (PK)
EMAIL_ADDR (AK1)
Я не хочу каким-либо образом изменять свой код только потому, чтоВ базе данных выложена дополнительная таблица, в которой мой код отсутствует;Я не верю, что «адрес электронной почты» оправдывает другую сущность домена.
Если возможно, я бы предпочел обновлять только свои отображения гибернации.В противном случае, есть ли какие-нибудь ненавязчивые обновления, которые могут быть сделаны к базе данных?
Обновление
Из того, что я видел, синтаксис соединения не будет действительно поддерживать то, что я делаю, особенно при использовании существующих адресов электронной почты, которые должны быть найденыв таблице EMAIL_ADDR
, которую я описал выше.Могу ли я предоставить необработанные запросы вставки / обновления в NHibernate?Или, возможно, единственный способ - это обновляемый вид?