我将DataContext作为与数据库的连接,并使用预编译查询(CompiledQuery)。 这是我的代码:
public static RichTextValue GetRichTextValue(this DataManager db, string key, string lang = LobbyHelper.DefaultLanguage) {
return CompiledQueryExtensions.RichTextValueByKeyAndLang(db, key, lang);//NullReferenceException is thrown here
}
其中DataManager扩展了DataContext。 DataManager静态实例在整个项目中共享。
public static class CompiledQueryExtensions
{
public static Func<DataManager, string, string, RichTextValue> RichTextValueByKeyAndLang =
CompiledQuery.Compile((DataManager db, string key, string lang) =>
db.RichTextValues.SingleOrDefault(x => !x.Deleted && !x.RichText.Deleted && !x.Language.Deleted
&& x.RichText.Key == key && x.Language.Code == lang));
}
最令我困惑的是,当通常请求页面时(通过浏览器URL)一切都很好,但是当我使用ajax请求PartialView并将其放在页面上时,我得到了一个例外。
请协助