首先,让我们开始说我是新秀。话虽这么说,我正在使用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
答案 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;
}