2011-01-26 7 views
1

으로 테이블 만들기 SQL에 익숙하지 않고 LINQ To SQL을 사용하여 테이블을 만들려고했습니다.LINQ To SQL/SQL CE

먼저 나는 DataContext에 객체 생성 :

 const string connStr = @"Spiri_SQL_CE_DB.sdf"; 
     _dc = new Spiri_SQL_CE_DB(connStr); 

을 그리고 나는이 방법으로 DB 테이블을 만들려고 :

public void CreateUserTab(string nick) 
{   
    string sqlCdm = string.Format(CultureInfo.InvariantCulture, "CREATE TABLE {0} (Nick nvarchar(30) PRIMARY KEY, AzetID nvarchar(30), RpText nvarchar(300), Your bit, Sing nvarchar(30), Time DateTime, OriginalTxt nvarchar(300))",nick); 

    _dc.ExecuteCommand(sqlCdm); 

    _dc.SubmitChanges(); 
} 

1

첫 번째 문제는 내가 이것을 사용한다는 것입니다 메서드를 만들고 테이블을 만들고 앱을 닫습니다. 그러나 새로 생성 된 테이블은 데이터베이스에 없습니다.

데이터베이스에 대한 변경 사항이 DB에 저장되지 않는다고 생각합니다. 서버 탐색기에서 db 파일을 검사하면 새 db 테이블이 표시되지 않습니다.

2. 그리고 두 번째 문제는. 예를 들어

나는, DB 테이블을 나타내는 클래스가하는 것은 여기입니다 :

[Table] 
public class User 
{ 
    [Column(IsPrimaryKey = true)] 
    public string Nick { get; set; } 

    [Column] 
    public string AzetId { get; set; } 

    [Column] 
    public String RpText { get; set; } 

    [Column] 
    public bool Your { get; set; } 

    [Column] 
    public string Sing { get; set; } 

    [Column] 
    public DateTime Time { get; set; } 

    [Column] 
    public string OriginalTxt { get; set; } 
} 

나는 그 CLR 클래스 Tabel에 가능한 매핑 SQL 테이블 알고있다. 이 클래스를 사용하여 특정 이름의 DB 테이블을 만들 수 있습니까?

내 코드에서 생략 된 SQL 명령을 사용하고 싶습니다. CLR 개체에서 db 테이블을 만들 수 있습니까?

3. 그리고 마지막 질문은 다음과 같습니다

시나리오는 다음과 같습니다

내가, 내가 SqlMetal과 Table<User>의 SQL 컴팩트 DB 파일이 구성되어 하나 개의 테이블 사용자 1 유형을 생성 한

* dbml 파일.

다음 코드에서 다른 테이블 User2, User3 ... UserN을 만듭니다.

응용 프로그램을 닫습니다.

db 테이블 User2 ... UserN에 액세스 할 수 있습니까? 아니면 다른 dbml 파일을 만들어야합니까?

답변

0

1 : 파일 위치에 대한 혼란을 피하기 위해 연결 문자열에서 sdf 파일의 전체 경로를 사용하십시오.

2 : 예, _dc.CreateDatabase를 호출하면 테이블이 만들어집니다. (이 클래스는 DataContext에 Table 객체로 포함되어야합니다.

3 : 필요한 코드를 .cs 파일로 대신 생성 하시겠습니까?