gpt4 book ai didi

c# - LINQ to Entities 无法识别方法 'System.Web.Security.MembershipUser GetUser()Method'

转载 作者:行者123 更新时间:2023-11-30 21:20:33 25 4
gpt4 key购买 nike

我有(很好)一些代码可以让我得到我可爱的用户名并用它的内容填充一个 session :

ManagePreferencesDataContext lg = new ManagePreferencesDataContext();
IEnumerable<tblManagePreference> ol;

ol = from login in lg.tblManagePreferences
where login.Username == Membership.GetUser().ToString()
select login;

if (ol.Count() > 0)
{
Session["Sess_MemberID"] = ol.First().MemberID;
Session["Sess_LocationID"] = ol.First().LocationID;

lblMemberID.Text = Session["Sess_MemberID"].ToString();
lblLocationID.Text = Session["Sess_LocationID"].ToString();
}

else
{

太棒了!那工作得很好而且花花公子。然而,我被指示转移到 sunny Entity Framework,老实说,我们没有相处,即我对它了解不够 - 我知道的很少!

无论如何,我已经尝试用以下内容修改上面的代码:

VDSORDAL.PDC_VDSOREntities lg = new VDSORDAL.PDC_VDSOREntities();
IEnumerable<VDSORDAL.tblUserPreference> ol;

ol = from login in lg.tblUserPreferences
where login.Username == Membership.GetUser().UserName
select login;

if (ol.Count() > 0)
{
Session["VDS_MemberID"] = ol.First().MemberID;
Session["VDS_LocationID"] = ol.First().LocationID;
Session["VDS_Username"] = ol.First().Username;

lblMemberID.Text = Session["VDS_MemberID"].ToString();
lblLocationID.Text = Session["VDS_LocationID"].ToString();
}
else
{
}
}

但是,当我尝试运行它时,我收到了构成此问题标题的错误。

总而言之 - 我哪里出错了。

一如既往,许多人对最有可能是一个非常简单的问题表示歉意。

最佳答案

您已完成 99%。问题是您将一个方法 (GetUsername) 传递给它不理解的 L2E 解析器。在这种情况下,您想处理值而不是方法调用:

VDSORDAL.PDC_VDSOREntities lg = new VDSORDAL.PDC_VDSOREntities();
IEnumerable<VDSORDAL.tblUserPreference> ol;
string userName = Membership.GetUser().UserName; //store the value
ol = from login in lg.tblUserPreferences
where login.Username == userName
select login;

if (ol.Count() > 0)
{
Session["VDS_MemberID"] = ol.First().MemberID;
Session["VDS_LocationID"] = ol.First().LocationID;
Session["VDS_Username"] = ol.First().Username;

lblMemberID.Text = Session["VDS_MemberID"].ToString();
lblLocationID.Text = Session["VDS_LocationID"].ToString();
}
else
{
}
}

发生这种情况是因为 LINQ to Entities Provider 计算表达式以构建查询。它无法在 Membership 对象上执行该方法。

关于c# - LINQ to Entities 无法识别方法 'System.Web.Security.MembershipUser GetUser()Method',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com