최신 EF 코드 First NuGet 패키지는 DontDropDbJustCreateTablesIfModelChanged
이라는 사용자 지정 구현 IDatabaseInitializer
과 함께 제공됩니다. 이름에서 알 수 있듯이 모델 변경이 감지되면 전체 데이터베이스를 삭제하고 다시 만들지 않고 테이블을 삭제하고 다시 만듭니다. EF 코드에 대한 사용자 정의 초기화 우선 열을 추가 할 테이블을 삭제하지 않습니다.
public class User
{
public string Username { get; set; }
// This property is new; the model has changed!
public string OpenID { get; set; }
}
어떻게 하나
어떤 테이블 중 하나을 떨어 뜨리지 않는
IDatabaseInitializer
것을 구현하는 방법에 대한 갈 것이라고 :
내가이 모델 클래스를 말한다. 이 경우
OpenID
열을 User 테이블에 추가하면됩니까?
예, 사용 가능한 모든 IDatabaseInitializer 구현이 "파괴적인"접근 방법을 선택하는 방법을 보았습니다. 감사합니다. –
@Sergi Papaseit : 이것은 매우 흥미 롭습니다. 더 이상 가져 갔니? EF 4.1 코드로 구현 된 것 중 하나는 데이터베이스 마이그레이션입니다. 나는 위의 Ladislav가 제시 한 것이 실제로 정교하고 자동화 된 것이라면 실제로 일할 수 있다고 믿습니다. 그래서, 만약 당신이 이것에 더 깊이 들어갔다면, 우리와 함께 그것을 공유하십시오 :) – Kassem
@ 카셈 - 저는 실제로 없습니다. 누군가는 SO에 대해 나에게 매우 좋은 지적을했습니다. 이것은 물론 개발 환경에서만 의미가 있다고 말했기 때문에 매번 DB를 삭제하지 않아도됩니다. ;) –