Estoy creando un mapeo subclase Fluido N de hibernación que en la actualidad se ve algo como esto:¿Puede especificar la columna de identidad cuando usa la estrategia Fluent Nhibernate Table-Per-Subclass?
public class TaskDownloadMap: SubclassMap<TaskDownload>
{
public TaskDownloadMap()
{
Table("TasksDownload");
Map(x => x.ExtraProperty1, "ExtraProperty1")
.Nullable();
Map(x => x.ExtraProperty2, "ExtraProperty2")
.Nullable();
}
}
Cuando intento y guardar una de estas entidades Puedo obtener una excepción:
Test.TaskRepositoryTest.DeleteTest:
NHibernate.Exceptions.GenericADOException : could not insert: [TaskManager.Entities.TaskDownload#269][SQL: INSERT INTO TasksDownload (ExtraProperty1, ExtraProperty2, Task_id) VALUES (?, ?, ?)]
----> System.Data.SqlClient.SqlException : Invalid column name 'Task_id'.
Es porque el Id La columna que he configurado en la tabla de mi subclase se llama "TaskId". ¿Hay algo para anular el esquema de nombres predeterminado que nhibernate está tratando de usar? No parece tener la capacidad de especificar la columna "Id" en la subclase y no puedo encontrar a nadie más, incluso hablando de ello.
El padre de mapeo se ve así:
public class TaskMap: ClassMap<Task>
{
public TaskMap()
{
Table("Tasks");
Id(x => x.Id, "Id")
.GeneratedBy.Identity();
.
.
.
}
}
Como dije antes voy con la estrategia de tabla-por-Subclase lo que estos son 2 tablas diferentes. Puedo cambiar la clave en mi tabla TasksDownload para que sea "Task_id", pero prefiero poder especificar que es "TaskId" en mi asignación para que pueda cumplir con mi convención de nomenclatura.
¿Cómo es su jerarquía parece? ¿Puedes publicar el mapeo de padres? – nemesv
Publicación editada para tener una asignación principal. –