[Извините за задержку ... Я вернулся]
К сожалению, атрибут [Включить] не помогает. Требуется добавить сопутствующий атрибут [association]. Но это подразумевает то, чего я хотел избежать - принудительно установил дополнительные поля и реализации для доменных объектов, которые должны были быть простыми и без таких ненужных и которые были предназначены для отображения ORM (NHibernate).
Решение является достаточно инвазивным и включает в себя все необходимое для ассоциаций в отношении сущностей - идентификаторы. Это также оказало влияние на отображение, так как мне нужно было поместить элемент внутри . Просто, чтобы получить удостоверение личности от родителя - понятия не имел, как его получить ...
Наконец, классы доменов стали следующими:
[MetadataType(typeof(CustomerMetadata))]
public partial class Customer
{
[DataContract]
internal class CustomerMetadata
{
[Key]
[DataMember]
public int ID { get; set; }
[DataMember]
public string Symbol { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public string NIP { get; set; }
[Include]
[Association("Customer_Address", "ID", "CustomerID", IsForeignKey = true)]
[DataMember]
public Address Address { get; set; }
}
}
... и
public partial class Customer
{
public virtual int ID { get; set; }
public virtual string Symbol { get; set; }
public virtual string Name { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string NIP { get; set; }
public virtual Address Address { get; set; }
}
Чтобы это работало, отображение было изменено на следующее:
<class name="Customer" table="`CRM_CUSTOMER`">
<id name="ID">
<generator class="native" />
</id>
<property name="Symbol" unique="true" />
<property name="Name" />
<property name="FirstName" />
<property name="LastName" />
<property name="NIP" />
<component name="Address" class="Address">
<parent name="Customer" />
<property name="Descriptive" />
<property name="Street" />
<property name="City" />
<property name="PostCode" />
<property name="Country" />
</component>
</class>
Элемент там новый. Я не только уверен, был ли корректным необязательный атрибут, чтобы сделать ассоциацию ассоциацией внешнего ключа ...
Меня также удивило, что я не нуждаюсь в какой-либо доменной службе для самого адреса, поскольку сгенерированный код содержит его и все другие вещи, которые я ожидал в самом начале истории со службами RIA. .
Решение стало действительно инвазивным и поэтому не идеальным для меня, но пока, по крайней мере, удовлетворительным. Пока это работает. Мне только интересно, что я буду делать с ассоциацией «многие ко многим» в NH?
Надеюсь, это кому-нибудь поможет. Приветствия.
Roland