Fluent NHibernate une tablas en la asignación que no usa la clave primaria
Estoy tratando de crear una entidad a partir de 2 tablas que no están relacionadas por clave principal
Mesas
CREATE TABLE [employees](
[ssn] [nvarchar](9) NULL,
[active] [bit] NULL,
[employee_id] [int] IDENTITY(1,1) NOT NULL
)
CREATE TABLE [sam_employees](
[ssn] [nvarchar](9) NULL,
[first_name] [nvarchar](50) NULL,
[last_name] [nvarchar](50) NULL,
[skill] [nvarchar](50) NULL,
....
)
SQL para generar:
SELECT this_.employee_id as employee1_0_0_,
this_.ssn as ssn0_0_,
this_.active as active0_0_,
this_1_.first_name as first2_1_0_,
this_1_.last_name as last3_1_0_,
this_1_.skill as skill1_0_
FROM employees this_
inner join sam_employees this_1_
on this_.ssn = this_1_.ssn
WHERE this_.active = 1
Mi mapeo actual:
public class EmployeeMap : ClassMap<Employee>
{
public EmployeeMap()
{
Table("employees");
Id(x => x.Id, "employee_id");
Map(x => x.SSN, "ssn");
Map(x => x.IsActive, "active");
Join("sam_employees", mm =>
{
mm.KeyColumn("ssn");
mm.Map(xx => xx.FirstName, "first_name");
mm.Map(xx => xx.LastName, "last_name");
mm.Map(xx => xx.Skill, "skill");
});
}
}
Pero con este mapeo tengo esa condición de unión en this_.employee_id = this_1_.ssn
Sé que esta pregunta se hizo antes, pero no encontré una buena respuesta, solo una solución alternativa para usar Ver en el lado de la base de datos en lugar de tablas.