수색…


기존 데이터베이스에 연결

Entity Framework에서 가장 간단한 작업을 수행하려면 - MSSQL의 로컬 인스턴스에있는 기존 데이터베이스 ExampleDatabase 에 연결하려면 두 클래스 만 구현해야합니다.

첫 번째 엔티티 클래스가 데이터베이스 테이블 dbo.People 매핑됩니다.

    class Person
    {
        public int PersonId { get; set; }
        public string FirstName { get; set; }
    }

이 클래스는 Entity Framework의 규칙을 사용하고 기본 키 PersonId 와 varchar (max) 속성 FirstName 이 있어야하는 dbo.People 테이블에 매핑합니다.

두 번째는 System.Data.Entity.DbContext 에서 파생되며 런타임 중에 엔터티 개체를 관리하고 데이터베이스에서 해당 개체를 병합하고 동시성을 처리하고 다시 데이터베이스에 저장하는 컨텍스트 클래스입니다.

    class Context : DbContext
    {
        public Context(string connectionString) : base(connectionString)
        {
            Database.SetInitializer<Context>(null);
        }

        public DbSet<Person> People { get; set; }
    }

컨텍스트의 생성자에서 데이터베이스 초기자를 null로 설정해야한다는 것을 기억하십시오. Entity Framework에서 데이터베이스를 만들지 않고 단지 액세스하려고합니다.

이제는 테이블에서 데이터를 조작 할 수 있습니다. 예를 들어 다음과 같이 콘솔 응용 프로그램에서 데이터베이스에있는 첫 번째 사람의 FirstName 을 변경하십시오.

    class Program
    {
        static void Main(string[] args)
        {
            using (var ctx = new Context("DbConnectionString"))
            {
                var firstPerson = ctx.People.FirstOrDefault();
                if (firstPerson != null) {
                    firstPerson.FirstName = "John";
                    ctx.SaveChanges();
                }
            }
        }
    }

위의 코드에서 "DbConnectionString"인수를 사용하여 Context 인스턴스를 만들었습니다. 이것은 app.config 파일에서 다음과 같이 지정해야합니다.

  <connectionStrings>
    <add  name="DbConnectionString" 
    connectionString="Data Source=.;Initial Catalog=ExampleDatabase;Integrated Security=True" 
    providerName="System.Data.SqlClient"/>
  </connectionStrings>


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