我正在使用EntityFramework.Filters包來爲我的實體設置一些默認和動態過濾器。它運行良好,但問:當我動態設置一個新的過濾器參數時,它將被忽略,並保持第一個值。EntityFramework.Filters動態參數
在調試模式下CultureHelper.GetCurrentCulture().Key
正確地返回新的文化集,篩選參數正在設置,但沒有任何反應。 OnModelCreation
有人提出
代碼
public partial class DataModel : DbContext
{
public DataModel() : base("name=DataModel")
{
var currentLanguageId = CultureHelper.GetCurrentCulture().Key;
this.EnableFilter("HideDeleted");
this.EnableFilter("CurrentLanguage").SetParameter("currentLanguageId", currentLanguageId);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
DbInterception.Add(new FilterInterceptor());
modelBuilder
.Conventions
.Add(
FilterConvention.Create<IDeleted, int>("HideDeleted", (e, Deleted) => e.Deleted == false),
FilterConvention.Create<ILanguage, long>("CurrentLanguage", (e, currentLanguageId) => e.LanguageId == currentLanguageId)
);
}
}
您是否嘗試過使用'currentLanguageId'靜態變量並使用它來代替傳遞? – ASpirin
是的,我做了@ASpirin,完美地用作靜態作品。濾波器參數僅考慮第一個值集。 –
'CultureHelper.GetCurrentCulture()'下的代碼是什麼? – ASpirin