나는 새로운 DB를 생성하도록되어 코드 첫 DbContext을 가지고 있지만 몇 번을 시도해 후 DB가 존재하지 않습니다, 나는 시퀀스를 얻고 아래 코드의 ctx.Statuses.ToList()
에는 요소 오류가없는 :내 코드 첫 번째 데이터베이스는 어디에 있습니까?
static void Main(string[] args)
{
var ctx = new EtbDbContext();
EtbDbContext.Init();
var s = ctx.Statuses.ToList();
var l = ctx.Logins.ToList();
var u = ctx.Users.ToList();
}
Init()
방법은 말한다 : 나는 오류가 발생하고 직접 실행 창에서 내 연결 문자열을 검사 할 때
public static void Init()
{
Database.SetInitializer(new DropCreateDatabaseAlways<EtbDbContext>());
}
, 그 구성 및 예상대로 :
?ctx.Database.Connection {System.Data.SqlClient.SqlConnection} .. 은 ConnectionTimeout : 15 데이터베이스 : "EtbCodeFirst" 데이터 소스 : "BRADY-PC" 의 Serverversion : 'ctx.Database.Connection.ServerVersion' 'System.InvalidOperationException' 주 유형의 예외를 던졌다 :
이러한 DB 데이터 소스 BRADY-PC에 존재하지 않는 휴일을, 그래서 심지어 DB를 조회하기 전에 연결 오류가 발생한다. 나는 혼란스럽고 오히려 오만한 사람입니다. 오늘 DB 첫 개발로 돌아 오기 전에 누군가가 도움이되기를 바랍니다.
나는 또한 내 (localdb)와 아직 DB를 확인하지 않았습니다. 저주받은 DB를 만드는 악의적 인 EF 코드는 어디에도 없습니다. 그것은 매우 첫 번째 라인 및 테스트되도록 위쪽으로 귀하의`Main` 방법에`;
당신이'EtbDbContext.Init을 (이동할 수 ... 당신의 컨텍스트를 여는 다시? 그것은 중요하지만 이니셜 라이저를 설정하기 전에 컨텍스트 인스턴스를 만드는 것이 이상하게 보입니다. – Slauma
@Slauma 좋은 지적. 나는이 문제를 전에 아무런 문제없이 사용했지만 어쩌면 나는 결코 눈치 채지 못했을 것이다. 최대한 빨리 귀하의 제안을 시도하겠습니다. – ProfK
@Slauma가 알아 차 렸듯이 분명히 잘못된 순서로 (최선의 경우는 아무 것도해서는 안됨). 또한 app.config - 연결 문자열 (이름 지정) 및 'defaultConnectionFactory'(있는 경우) 및 어떤 공급자 (잘못된 버전을 피하기 위해)를 대상으로 설정합니까? 또한 새로운 EtbDbContext (connectionstring)을 실행 해 볼 수도 있습니다 - 일반적으로 작동하고 올바르게 작동하도록 도와줍니다. – NSGaga