Estoy tratando de aplicar un filtro (ApplyFilter) en una columna que se une (y se proyecta) desde otra tabla. Tengo la siguiente entidad:Fluent Nhibernate ApplyFilter on Join column
public class User
{
public virtual int Id { get; private set; }
public virtual string EMail { get; set; }
...
public virtual bool IsActive { get; set; }
public virtual int CompanyId { get; set; }
}
Con un usermap:
public class UserMap : ClassMap<User>
{
public UserMap()
{
Table("Users");
Id(x => x.Id, "UserId");
Map(x => x.EMail);
...
Join("CompanyUser", r =>
{
r.KeyColumn("UserId");
r.Map(x => x.IsActive);
r.Map(x => x.CompanyId);
r.Fetch.Join();
});
ApplyFilter<CompanyFilter>("this_1_.CompanyId = :companyId");
}
En realidad, esto funciona en este momento, pero como se puede ver que estoy tener que incluir el nombre de alias "this_1_" para el CompanyUser mesa en el filtro ... esto no suena correcto, pero si dejo el filtro como se define en la clase FilterDefinition me sale un SQL con un:
where this.CompanyId = ?p0
que no está asignada 'porque la columna de la CompanyID do omes de una proyección diferente (CompanyUser como this_1_)
¿Hay alguna manera de corregir esto y dejar que nhibernate descubra el alias correcto para el filtro?
Gracias de antemano por cualquier ayuda.
Me encantaría saber la respuesta a esto también. ¿Has encontrado una mejor solución? – pauldunlop
¿Alguna solución hoy? – RMalke
@RenanMalkeStigliani No, terminé viviendo con eso por el momento, no he encontrado una solución ... Me aseguraré de publicarlo aquí si lo encuentro – Jaime