我試圖在從另一個表加入(並投影)的列上應用篩選器(ApplyFilter)。我有以下實體:Fluent Nhibernate ApplyFilter加入列
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; }
}
隨着用戶映射:
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");
}
這實際工作的權利,但你可以看到我有包括別名「this_1_」爲CompanyUser表中的過濾器......這聽起來並不正確,但是如果我離開過濾器在FilterDefinition類中定義,我得到了一個SQL:
where this.CompanyId = ?p0
未COS的CompanyId列映射」 C (公司用戶this_1_1)
有沒有辦法糾正這個問題,讓nhibernate找出過濾器的正確別名?
在此先感謝您的幫助。
我很想知道這個問題的答案了。你找到了一個更好的解決辦法? – pauldunlop 2011-06-27 13:32:29
今天的任何解決方案? – RMalke 2012-10-17 02:19:38
@RenanMalkeStigliani不,我最終只是和它一起生活,我還沒有找到解決方案....我一定會在這裏發佈它,如果我找到它 – Jaime 2012-10-17 21:58:34