2011-03-11 1 views
1

프로그래밍 방식으로 LINQ to SQL을 사용하여 데이터베이스를 만들려고합니다.프로그래밍 방식으로 데이터베이스 파일을 만들 수 없음 (SQL Server 2008 R2 Express)

나는 (this 다음) 시도 :

MySQLSvrDb db = new MySQLSvrDb(@"c:\mydb.mdf"); 
if (!db.DatabaseExists()) 
{ 
    db.CreateDatabase(); 
} 

하지만 SQLException이 얻을 "같은 이름의 데이터베이스가 존재, 또는 지정된 파일을 열 수 없거나이 UNC 공유에 있습니다."

MySQLSvrDb db = new MySQLSvrDb(@"C:\testdb.mdf"); 
if (db.DatabaseExists()) 
{ 
    Console.WriteLine("Deleting old database..."); 
    db.DeleteDatabase(); 
} 
db.CreateDatabase(); 

이 잘 작동 :

그러나, 단위 테스트를 위해 나는 데이터베이스를 다음과 같은 방법으로 (나는 모든 테스트를위한 빈 DB를 확인하는)을 만들었습니다. 내 문제는 첫 번째 접근 방식과 차이가 없다는 것입니다. 문제가 어떻게 든 this과 관련되어 있지만 제안 된 해결 방법이 작동하지 않았습니다.

힌트가 있습니까?

편집

난 그냥 단계가 작동()을 DatabaseExists를 건너 뛸 수 있지만, 거기에 이미 DB를하면 내가 확인해야합니다.

+0

'factory.CreateDatabase()'와'db.CreateDatabase()'의 차이점은 무엇입니까? – Peter

+0

물론 db.CreateDatabase() 여야합니다. EDITED – Simon

+0

실행중인 코드의 첫 번째 부분은 어떤 컨텍스트입니까? 그것은 asp.net (MVC인가요?), 그렇다면, 그것은 웹 개발, IIS, IIS는 Express에서 실행되는거야? –

답변

0

방법 : 동적

How to create DB in Linq to sql

가 먼저 처음 생성 DB를 삭제하려고 했습니까 (LINQ SQL로) 데이터베이스를 만들기? 다시 방법을 실행합니까?

데이터베이스를 로컬로 생성하는 이유는 여전히 sql server를 사용하여 연결합니까? 대신 sql lite 또는 SQL Server ce DB를 사용할 수 있습니다.

감사합니다.

+0

불행히도이 작업은 이미 유용합니다. 이 하우투에 설명되어 있습니다. BTW : 귀하의 링크가 고장났습니다. – Simon