|
4 번째 장에서 sql server 에이전트가 활성화 되지 않아 무려 6시간을 헤에이고 해결하지 못했네요. 일단 다음으로 미루고 5장을 시작합니다..... (일주일 후...) 다시... 모두 치웠습니다. Expression버전과 트라이얼 버전을 완전 삭제하고 다시 깔았습니다. VisualStudio Professional 정식 버전 깔고, WebsiteSpack 에서 SQL 3년 무료버전을 깔았습니다. 참고고 WebsiteSpack에 가입하시면 모든 프로그램을 공짜로 줍니다. 굉장히 유용한 사이트입니다. 여러분들도 트라이얼이나 Express버전 다 삭세하고 다시 깔아보세요. 굉장히 좋습니다. http://www.microsoft.com/web/websitespark/webpro/ 상기 주소로 다이렉트로 진입이 안될 수 있습니다. 그렇다면... http://www.microsoft.com/web/ 에서 상단 메뉴바의 "파트너프로그램/ 웹개발자"로 진입을 시도해 보세요. 가입하고나서 Subscription의 내 계정에 권한이 생김니다.
Accessing your Model's Data from a Controller 컨트롤러에서 모델의 데이터 연결 In this section, you'll create a new Right-click the Controllers folder and make a new
컨트롤러에 액세스하여 모델의 데이터 This creates a new MoviesController.cs file in the project's Controllers folder. Let's update the Note that in order to be able to reference the 이것은 프로젝트의 컨트롤러 폴더에 새 MoviesController.cs 파일을 만듭니다. 무비 리스트 검색이 가능하도록 무비 컨트롤러의 인덱스 액션 메서드를 바꾸어 줍니다. 우리는 앞에서 만든 MovieDBContext 클래스를 참조할 수 있는 정보, 화일의 맨 위쪽에 2 개의 using 구문을 아래와 같이 추가해야합니다.
The code for the
MoviesController 클래스에 대한 코드는 같이 보입니다 : The code is performing a LINQ query to retrieve only movies that were released after the summer of 1984. We'll need a view template to render this list of movies, so right-click inside the method and select Add View to create it. In the Add View dialog box, we'll indicate that we're passing a Remember that after you've created a new class, you'll need to compile your application before the class shows up in the Add View dialog box.
코드는 1984 년 여름 이후에 릴리스된 영화를 검색하는 LINQ 쿼리를 수행하고 있습니다. 우리는 뷰 템플릿에 영화 리스트의 실행을 요구할것이다. 따라서 메소드 안쪽에 마우스 우 클릭을 하고 생성을 위해 Add view 를 선택합니다. Add view 대화 상자에서, 우리는 뷰 템플릿에 영화 클래스를 연결할 것을 나타낼것입니다. Add View 다이럴로그 박스에서 빈 템플릿을 생성하던 예전과는 다르게, 이제는뷰 템플릿에 기본 목차를 게시대의 드롭다운을 통하여 리스트를 선택할수있고, VS가 자동으로 반환하는 것을 나타냅니다.
당신은 새 클래스를 만든 후 클래스가 추가보기 대화 상자에 표시하기 전에, 당신은 귀하의 응용 프로그램을 컴파일하는 데 필요한 것을 기억하세요.
Click Add. Visual Web Developer automatically generates the code for a view that displays a list of movies. This is a good time to change the The code below show a portion of the In addition, in the table header, change the column name from "ReleaseDate" to "Release Date" (two words). Add를 누릅니다. VS가 자동으로 영화의 뷰에 표시할 목록에대한 코드를 생성합니다. 이것은 당신이 "Hello World"에서 뷰 페이지를 편집했던 것처럼 머리글을 <h2>"My Movie List"로 바꿔주기 좋은 시간입니다. 아래의 코드는 영화 컨트롤러에 대한 인덱스 뷰의 일부를 보여줍니다. 이 장에서, {0 :g}에서 {0 : d }(짧은 날짜에서 일반 날짜 스타일로). 가격 속성에 대한 문자열을 (통화에서 부동으로) {0:F} 에서 {0:c}로 변경.
Strongly typed Models and the @model keyword :강력하게 형시화 된 모델 및 @모델 키워드Earlier in this tutorial, we covered how a Controller can pass data/objects to a view template using the ViewBag. The ViewBag is a dynamic object, and provides a convenient, late-bound, way to pass bits of information to a view. ASP.NET MVC also provides the ability to pass data/objects to a view template using a strongly-typed approach. This strongly-typed approach enables richer editor intellisense, and better compile-time checking of your code. We are using this approach above with our
Notice how we are passing an argument when calling the
이 튜토리얼 이전에, 우리는 컨트롤러가 ViewBag를 사용하여 뷰 템플릿에 데이터/개체를 전달할 수있는 방법을 다루었습니다. ViewBag은 동적 개체와 뷰에 정보 비트를 전달하는 데 편리하고, 느슨한 결합, 방법을 제공합니다.
This line of code indicates that we are passing a list of Movies from our Controller to our View: 이 코드 라인은 컨트롤러에서 무비 리스트를 뷰에 넘기는 것을 나타냅니다:
View templates can indicate the type of object they expect to be passed using a
뷰 템플릿은 파일의 맨 위에 @model 문을 사용 전달된 것으로 요구하는 개체의 유형을 나타낼 수 있습니다. Index.cshtml 뷰 템플릿을 작성할 때를 기억해 보면, 우리는 "Add View" 다이얼로그의 체크박스 “Create a strongly-typed view”를 첵크했었고, 무비 리스트를 넘겼다고 말했었습니다. 이 원인으로 Index.cshtml 파일의 맨 위에 @Model 문을 VS에서 자동으로 방출하여 우리의 뷰템플릿에 게시된 것입니다.
@model IEnumerable<MvcMovie.Models.Movie>
This
이 @ 모델 지시문은 우리의 컨트롤러 강력한 타입의 "모델"개체를 사용하여 우리에게 전달되는 영화의 목록에 액세스할 수있게 해줍니다. 예를 들어, 우리의 Index.cshtml 템플릿 안에 강력한 타입에 반복문에 의해서 영화 목록이 돌려집니다.
Because our “Model” is strongly-typed (as an
우리의 "모델"은 강력하기 때문에(IEnumerable <Movie>), 각기 아이템이 루프하는 동안 "Movie" 같은 강력한 타입입니다. 다른 이점으로는, 이것은 우리의 코드 컴파일 타임 검사, 및 코드 편집기 내에서 완전한 IntelliSense를 지원을받을 것을 의미합니다 :
|
<add name="MovieDBContext" connectionString="Server=.\SQLEXPRESS; Database=Movies;Trusted_Connection=true" providerName="System.Data.SqlClient" /> |
The following code shows a portion of the Web.config file with the new connection string added:
다음 코드는 새 연결 문자열을 Web.config 파일의 일부를 추가로 보여줍니다 :
<configuration> <connectionStrings> <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> <add name="MovieDBContext" connectionString="Server=.\SQLEXPRESS; Database=Movies;Trusted_Connection=true" providerName="System.Data.SqlClient" /> </connectionStrings> |
************************
Config파일의 <connectionStrings>의 세팅은 아래와 같습니다. 세팅이 틀리면 절대로 안됩니다. 상기의 상황과 다른기 때문에 다음과 같은 방법으로 세팅값을 얻을 수 있습니다.
서버 탐색기 > 데이터연결 에서 연결된 DB를 클릭하면 하단에 연결속성이 나옵니다. 연결 > 연결문자열의 내용을 복사하면 " Data Source=UBICOM-PC;Initial Catalog=Movies;Persist Security Info=True;User ID=sa;Password=*********** "와 같이 나옵니다. <add name = "DbContext name"를 적어주고 나머지는 복사하여 넣습니다. 그리고 Password도 정확히 기입하여 주시면 됩니다.
<connectionStrings> Integrated Security=SSPI; AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" <add name="MovieDBContext" connectionString="Data Source=UBICOM-PC; Initial Catalog=Movies;Persist Security Info=True;User ID=sa;Password=*****" |
*****자습서를 따라하다보니 커다란 실수를 했습니다. 반드시 DB의 연결문자열을 정확히 찾아 기입하여 주어야 합니다.****
디버깅을 하고 Movies로 이동하면 입력된 데이터 리스트가 출력됩니다.
***************************
The value of the connectionString
attribute indicates that we want to use a Movies
database that's managed by a local instance of SQL Server Express. When you installed Visual Web Developer Express, the installation process automatically installed SQL Server Express on your computer as well, which means you have everything necessary for the database to work.
Run the application and browse to the Movies
controller by appending /Movies to the URL in the address bar of your browser. An empty list of movies is displayed.
의 ConnectionString 속성의 값은 우리가 SQL Server Express의 로컬 인스턴스에 의해 관리의 영화 데이터베이스를 사용하고자했음을 나타냅니다. 당신은 비주얼 웹 개발자 익스프레스, 당신은 모든 작업은 데이터베이스에 필요한 수단이 자동으로 사용자의 컴퓨터에 SQL Server Express를 설치한 설치 과정, 설치된 경우.
응용 프로그램을 실행하고 브라우저의 주소 표시줄에있는 URL / Movies를 추가하여 영화 컨트롤러로 이동합니다. 영화의 빈 목록이 표시됩니다.
As you just saw, when you first accessed the MovieDBContext
instance using the MoviesController
code above, the Entity Framework automatically created an empty Movies
database for you. It mapped the Movies
properties of the MovieDBContext
class to a new Movies
table that it created in the database. Each row in the table is mapped to a Movie
instance and each column in the Movies
table is mapped to a property on the Movie
class.
You can use the SQL Server Management Studio tool to see the database schema that was created using the model. Start SQL Server Management Studio.
당신은 방금 본 것처럼, 먼저 위의 MoviesController 코드를 사용하여 MovieDBContext 인스턴스를 액세스할 때, Entity Framework가 자동으로 빈 영화 데이터베이스를 만들었습니다. 그것은 데이터베이스에서 만든 새 영화 테이블로 MovieDBContext 클래스의 영화 속성을 매핑. 테이블의 각 행에는 영화 클래스에 속성에 매핑됩니다. 영화 인스턴스와 영화 테이블의 각 컬럼에 매핑됩니다.
당신도 모델을 사용하여 만들어진 데이터베이스 스키마를 참조하려면 SQL Server Management Studio를 도구를 사용할 수 있습니다. 시작 SQL 서버 관리 스튜디오.
The Connect to Server dialog box is displayed. In the Server name box, enter the following name:
.\SQLEXPRES
서버 연결창이 표시됩니다 서버 대화 상자에 연결합니다. 서버 이름 상자에 다음 이름을 입력합니다 :
Click Connect. The Movies
database is displayed in the Object Explorer pane.
연결을 누릅니다. 영화 데이터베이스 개체 탐색기 창에 표시됩니다.
Right-click the Movies
table and select Design.
마우스 오른쪽 단추로 영화 테이블을 클릭하고 디자인을 선택합니다.
You see the database schema.
당신은 데이터베이스 스키마를 참조하십시오.
Notice how the schema of the Movies
database maps to the Movie
class you created earlier. Entity Framework code-first automatically created this database schema for you based on your Movie
class.
You now have the database and a simple listing page to display content from it. In the next tutorial, we'll add a Create
method and a Create view that lets you add movies to this database.
공지하는 것은 앞에서 만든 영화 클래스에 영화 데이터베이스의 스키마. 엔티티 프레임 워크 code-first는 자동으로 Movie 클래스에 데이터베이스 스키마를 만들었습니다.
이제 데이터베이스와 그것의 컨텐트를 표시하는 간단한리스트 페이지가 있습니다. 다음 튜토리얼에서, 우리는이 메서드를 만듭니다 추가할 것입니다 그리고이 데이터베이스에 동영상을 추가할 수보기를 만듭니다.
|