DbContext用法和属性值

时间:2012-12-19 18:25:53

标签: c# asp.net-mvc-3 properties dbcontext entity-framework-4.3

首先,让我们开始说我是新秀。话虽这么说,我正在使用MV第一种方法使用MVC3 w / EF4.3.1在C#中构建一个Web应用程序。在登录过程中,我想设置一些会话变量以在整个应用程序中使用。

我的问题是我不知道如何将值读入会话变量。以下是AccountController.cs中的代码:

[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        if (Membership.ValidateUser(model.UserName, model.Password))
        {
            FormsAuthentication.SetAuthCookie(model.UserName, 
                                              model.RememberMe);
            if (Url.IsLocalUrl(returnUrl) 
                && returnUrl.Length > 1 
                && returnUrl.StartsWith("/")
                && !returnUrl.StartsWith("//") 
                && !returnUrl.StartsWith("/\\"))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }
        else
        {
            ModelState.AddModelError("", 
                "The user name or password provided is incorrect.");
        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}

根据我的阅读,我应该尝试使用DbContext来访问给定字段的属性,类似于:

using (var context = new DbContext())
{
    var svc100 = context.SVC00100.Where(t => 
                        t.TECHEMAIL.Contains("model.UserName")

    // Read the current value of the Name property
    Session["Name"] = context.Entry(svc100).Property(u =>
                                                 u.Name).CurrentValue;
}

现在......如何在第二个代码块中确定应该使用什么代替DbContext()?如果我尝试使用下拉菜单并选择我需要的内容,我看不到任何与我的实体(CPLUEntities)相关的包含DbContext短语的内容。

我发现的一些链接:

Implement custom “ValidateUser” in MembershipProvider

Entity Framework Working with Property Values

Using DbContext in EF 4.1 Part 5: Working with Property Values

1 个答案:

答案 0 :(得分:2)

using (var context = new DbContext())
  {
     var svc100 = context.SVC00100
                 .FirstOrDefault(t => t.TECHEMAIL.Contains(model.UserName));

     // Read the current value of the Name property
     if (svc100 != null && !String.IsNullOrEmpty(svc100.Name))
         Session["Name"] = svc100.Name;
  }