Быстрый NHibernate - таблицы Карты 2 к одному классу

Нет такой вещи, как определение свойства.

Вы можете объявить свойства только потому, что они являются контейнерами данных, зарезервированных в памяти при инициализации.

С другой стороны, функция может быть объявлена ​​(типы, имя, параметры) без определения (тело функции отсутствует) и, таким образом, может быть сделана абстрактной.

«Абстрактный» указывает только на то, что что-то было объявлено, но не определено, и поэтому перед его использованием необходимо определить это, или оно станет бесполезным.

9
задан Morten Schmidt 19 May 2009 в 06:03
поделиться

3 ответа

I don't know if it is possible with fluent, but in xml you use the join element:

simplified:

<class name="Employee" table="Customers" >
  <id name="CustomerID" .../>

  <property name="CustomerName"/>

  <join table="Employees">
    <key column="EmployeeCustID" />
    <property name="EmployeeLogin" />
  </join>

</class>

See this post by Ayende

4
ответ дан 4 December 2019 в 22:29
поделиться

Является ли EmployeeCustID уникальным? Если нет, то это никогда не сработает, поскольку вы затем пытаетесь втиснуть два разных типа сущностей в 1. Кроме того, как вы хотите сохранить экземпляр в своей структуре? -> CustomerID не известен, поэтому вы не можете сохранить такой объект.

ИМХО, лучше просто сохранить Customer как объект, связанный с Employee, поскольку (я предполагаю) EmployeeCustID используется для связывания объекта Customer с объектом Employee, если сотрудник также является клиентом, что означает, что «клиент» просто роль сотрудника и, следовательно, необязательная и изменяемая и, следовательно, должна быть отдельной единицей.

0
ответ дан 4 December 2019 в 22:29
поделиться

Я не пробовал этого, так как Fluent NHibernate перешел на 1.0, поэтому мой синтаксис может быть неправильным. Я почти уверен, что это сработает, только если Customer.CustomerId является внешним ключом для Employee .

public class EmployeeMap : ClassMap<Employee>
{
  public EmployeeMap()
  {
    Id(x => x.EmployeeId);
    Map(x => x.EmployeeLogin);

    Table("Customer", m =>
    {
      m.Map(x => x.EmployeeName, "CustomerName");
    });
  }
}
1
ответ дан 4 December 2019 в 22:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: