수색…


데이터베이스에서 모델 생성하기

Visual Studio Solution Explorer 로 이동 한 다음 모델을 추가 할 Project마우스 오른쪽 버튼으로 클릭합니다. ADO.NET Entity Data Model 선택

여기에 이미지 설명을 입력하십시오.

그런 다음 선택 Generate from database 클릭 Next 클릭 한 다음 창에 New Connection... 당신의 모델을 생성 할 데이터베이스 및 지점 (수 있을까 MSSQL , MySQL 또는 Oracle )

여기에 이미지 설명을 입력하십시오.

이 작업을 완료 한 후 Test Connection 클릭하여 제대로 연결을 구성했는지 확인하십시오 (여기에서 실패 할 경우 더 이상 진행하지 마십시오).

Next 을 클릭하고 원하는 옵션을 선택하십시오 (엔티티 이름을 생성하거나 외래 키를 추가하는 스타일).

다시 Next 클릭하십시오. 이때 데이터베이스에서 모델을 생성해야합니다.

생성 된 모델에 데이터 주석 추가하기

Entity Framework 5 이상에서 사용되는 T4 코드 생성 전략에서 데이터 주석 특성은 기본적으로 포함되지 않습니다. 모든 모델 재생성의 특정 속성 위에 데이터 주석을 포함하려면 EDMX에 포함 된 템플릿 파일 ( .tt 확장명)을 열고 다음과 같이 UsingDirectives 메소드에 using 문을 추가하십시오.

foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>
(itemCollection))
{
    fileManager.StartNewFile(entity.Name + ".cs");
    BeginNamespace(code);
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false)#>
using System.ComponentModel.DataAnnotations;  // --> add this line

예를 들어, 템플릿에 기본 키 속성을 나타내는 KeyAttribute 가 포함되어 있다고 가정합니다. 삽입하려면 KeyAttribute 모델을 재생 자동으로하면서, 포함 된 코드의 일부 찾을 수 codeStringGenerator.Property 아래와 같이를 :

var simpleProperties = typeMapper.GetSimpleProperties(entity);
    if (simpleProperties.Any())
    {
        foreach (var edmProperty in simpleProperties)
        {
#>
    <#=codeStringGenerator.Property(edmProperty)#>
<#
        }
    }

그런 다음 if 조건을 삽입하여 다음과 같이 키 속성을 확인하십시오.

var simpleProperties = typeMapper.GetSimpleProperties(entity);
    if (simpleProperties.Any())
    {
        foreach (var edmProperty in simpleProperties)
        {
             if (ef.IsKey(edmProperty)) { 
#>    [Key]
<#      } 
#>
    <#=codeStringGenerator.Property(edmProperty)#>
<#
        }
    }

위의 변경 사항을 적용하여 생성 된 모든 모델 클래스는 데이터베이스에서 모델을 업데이트 한 후 기본 키 속성에 KeyAttribute 를 갖 KeyAttribute .

전에

using System;

public class Example
{
    public int Id { get; set; }
    public string Name { get; set; }
}

using System;
using System.ComponentModel.DataAnnotations;

public class Example
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow