다른 사람의 코드를 알아 내려고하고 있습니다. 사용자가 사용자 이름과 암호를 가져오고 데이터베이스 테이블에서 사용자 이름과 암호가 올바른지 확인합니다. 자신의 데이터 영역은 다음과 같습니다엔티티 프레임 워크 단계 문제
public class UserRepository : IUser
{
Context con = new Context();
public UserDTO GetUser(string user)
{
User u = con.Users.Find(user);
UserDTO User = new UserDTO();
if (u != null)
{
User.Username = u.UserName;
User.Password = u.Password;
}
return User;
}
}
IUSER 인터페이스 :
public interface IUser
{
UserDTO GetUser(string user);
}
ServiceLayer은 다음과 같습니다
public class UserService : IUserService
{
IUser data;
public UserService(IUser data)
{
this.data = data;
}
public bool Authenticate(string user,string pwd)
{
UserDTO u = data.GetUser(user);
if (u.Username == user && u.Password == pwd)
return true;
else
return false;
}
}
IuserService 인터페이스 : 정말 새로운 (그는이 컨트롤러 생성자 (SER = 새로운 UserService에 무슨 짓을했는지 이해할 수 없다
public class HomeController : Controller
{
public ActionResult Log()
{
return View();
}
IUserService ser;
public HomeController()
{
ser = new UserService(new UserRepository());
}
public ActionResult Login(Models.User user)
{
if (ser.Authenticate(user.UserName, user.Password))
{
ViewBag.Message = "Success";
}
else
ViewBag.Message = "UnSuccess";
return View();
}
:
public interface IUserService
{
bool Authenticate(string user, string pwd);
}
그리고 MVC 컨트롤러는 다음과 같습니다 UserRepository()))하지만 코드는 완벽하게 작동합니다. 그가 무엇을하려하며,이 컨트롤러를 DataLayer (UserRepository 클래스)에 연결하려고합니까?
감사합니다.
예 .. 왜이 코드를 생성자에 넣었는지 설명해 주시겠습니까? ... ser = new UserService (new UserRepository()); – Dayan
그는이 컨트롤러를 DataLayer (UserRepository 클래스)에 연결하려고합니까? – Dayan
@Dayan - Controller를 인스턴스화 할 때 UserService 객체를 만들고 싶었습니다. 네, 데이터 레이어에 연결하는 방법입니다. UserRepository는 사용자에게 CRUD 작업을 수행하지만 UserService는 비즈니스 논리 또는 인증과 같은 다른 작업을 처리합니다. UserRepo가 컨트롤러에 의해 UserService의 생성자로 전달되는 이유는 잘 모르겠습니다. – KDilawar