0

먼저, 내가 신인이라고 시작하겠습니다. 즉, 나는 C#에서 MVC3 w/EF4.3.1을 사용하여 웹 응용 프로그램을 구축하고 있습니다. 첫 번째 방법은 db를 사용하는 것입니다. 로그온 과정에서 일부 세션 변수를 설정하여 앱 전체에서 사용하고 싶습니다.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; 
} 
:
[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를 사용하려고해야합니다 다음은 현재 AccountController.cs의 코드는

... 두 번째 코드 블록에서 DbContext() 대신 사용할 대상을 어떻게 결정합니까? 드롭 다운을 사용하여 필요한 항목을 선택하려고하면 DbContext 구문이 포함 된 Entity (CPLUEntities)와 관련된 내용이 표시되지 않습니다.

내가 발견 한 링크의 일부를 :

Implement custom “ValidateUser” in MembershipProvider

Entity Framework Working with Property Values

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

+0

당신은 어떻게 시작 했나요? 어떤 시점에서 ObjectContext 또는 DbContext에서 파생 된 클래스가 포함 된 EF 모델을 만들어야합니다. 해당 클래스를 찾아 'using'문에서 사용하십시오. –

답변

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; 
    } 
+0

Scott,'(var context = new DbContext())를 사용하여 해당 코드 블록의 첫 번째 행을 사용하려고 시도했을 때 _'System.Data.Entity.DbContext.DbContext()에 대한 오류가 발생했습니다. 보호 수준 _ 그게 내가 갇혀 있다는 것을 안다. .. ** DbContext() ** 대신에 무엇이 있어야하는지 알 수 없다. 당신이 제안한 수정을해야 할 필요가 없다면 나는 놀라지 않을 것입니다. –

+0

DbContext()의 클래스 파일을 엽니 다. 클래스 이름 앞에 수정 된 액세스가 있어야합니다 (예 : "public partial class DbContext"). '공개'이외의 다른 내용 (예 : 보호 된, 비공개 또는 내부)을 '공개'로 변경하고 문제가 해결되는지 확인합니다. 그래도 코드를 보지 않으면 힘들 수 있습니다. – Scott

+0

일반적으로 Entity Framework는 DbContext의 파생 버전을 만듭니다. 기본 클래스를 사용하면 거의 효과가 없을 것입니다. –