'Int32 Userid()'方法 - LINQ之前的工作,但已经进入实体框架

时间:2016-12-10 15:16:53

标签: c# entity-framework linq

就像我昨天从Linq走向实体框架一样。但是在我在代码中找到页面上的不同位置之后。但是当我只需要登录页面时就给我带来了问题。

  

LINQ to Entities无法识别方法'Int32 Userid()'方法,并且此方法无法转换为商店表达式。

当我需要知道用户是否有会话知道您是否登录时,会犯错误。

然而,这是我第一次使用EF(实体框架),但很快就在Linq工作了大约2年。

private static int Userid()
    {
        return Helper.BrugerInformation.SessionVale.SessionBrugerid();
    }

public static string UserLayOut()
        {
            var checkuser = db.Users.FirstOrDefault(i => i.Id == Userid());
            if(checkuser != null)
            {
                return "~/Views/Shared/_backendLayout.cshtml";
            }
            else
            {
                return "~/Views/Shared/_Layout.cshtml";
            }
        }

返回会话信息:

public const string BrugerId = "Brugerid";

        public class SessionVale
        {
            public static int SessionBrugerid()
            {
                string brugerid = BrugerId;
                return Convert.ToInt32(HttpContext.Current.Session[brugerid]);
            }
        }

我怎样才能完成,以便我可以尽可能地使用不同的值?

1 个答案:

答案 0 :(得分:2)

使用局部变量,例如

int userid =  Userid();
var checkuser = db.Users.FirstOrDefault(i => i.Id == userid );