2011-01-26 16 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テーブルが表示されません。

第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ファイル、それが構成されて一つのテーブルUser1のタイプを生成している

* dbmlファイル。

次に、コードから別のテーブルUser2、User3 ... UserNを作成します。

アプリを閉じる

可能であれば、dbテーブルUser2 ... UserNにアクセスできますか?または別のdbmlファイルを作成する必要がありますか?

答えて

0

1:ファイルの場所に関する混乱を避けるために、接続文字列のsdfファイルへのフルパスを使用します。

2:はい、_dc.CreateDatabaseを呼び出すことができ、テーブルが作成されます。 (クラスはDataContextのTableオブジェクトとしてインクルードする必要があります

3:必要なコードを.csファイルで作成してみませんか?

関連する問題