2012-01-04 14 views
2

私はこのアイデアを数日間してきましたが、これがうまくいくかどうかを明確に示す根拠は見つかりませんでした。LinqPad + EF 4.1 + SQL Server CE

LinqPadクエリを使用して、SQL Server CEがクエリと同じディレクトリにある(おそらくクエリと同じ名前の)EF 4.1コードファーストデータベースを作成します。この理由は、後の処理のために照会結果を保管するためのデータベースを迅速にセットアップするためです。

アイデアは(これらは、最新のベータクエリで次に

public class User 
{ 
    public long Id { get; set; } 
    public string Name{ get; set; } 
} 

public class MyDBContext : DbContext 
{ 
    // note the overloaded constructor 
    // just pass in the LinqPad UserQuery connection 
    public MyDBContext(DbConnection connection) : base(connection, true) 
    {} 
    public DbSet<User> Users { get; set; } 
} 

で動作しますつまり、クエリでクラス定義を格納することです:私はEntityFramework 4.2を参照してきた

#define NONEST 
public Main() 
{ 
    Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDBContext>()); 
    // pass in the current database connection to point EF to the right database 
    var context = new MyDBContext(this.Connection); 
    context.Users.Add(new User(){Name = "Test User"}); 
    context.SaveChanges(); 

    context.Users.Dump("Contents of Users table"); 
} 

.0.0 LinqPadで、しかし私のクエリでは、私はSystem.Data.Entity名前空間を見ることができません。これは他の問題を示していますか?

私はenoug h文脈や情報が必要な場合は、私に知らせてください。これはできますか? LinqPadはこれをまだサポートしていませんか?

更新:

EFがLinqPadクエリ定義されたクラスがあり、まさにである、入れ子になったクラスをマッピングすることはできませんことが表示されます。私はこの文脈ではあまり経験はありませんが、私は打ちのめされたようです。 Joe Albahariがネストされていないユーザークラスをどうにかして実装できない限り、これは動作しないように見えます。誰でもアイデアはありますか?

最終更新日:latest betaを使用して

、これは完全に動作します。あらかじめ.sdfデータベースファイルを作成する必要がありますが、それ以外の操作はすべて有効です。とてもかっこいい。ありがとうジョーアルバハリ!その後、

+0

私はまだ何が起こったのかは分かりませんが、EF dllと名前空間の問題を解決できました。私は現在、クエリレベルのクラスをEFコードファーストでうまく使用できるように取り組んでいます。 – llaughlin

+0

私はあなたに未ネストクラスを定義させるビルドをしようとしています。お待ちください... –

答えて

3

ダウンロードthe latest betaとクエリの先頭に次のディレクティブを追加します。

#define NONEST 

これは、彼らが非入れ子になっているように、あなたは、レベルアップを定義タイプを移動するにはLINQPadを教えてくれます。

+0

うわー、それは速かった!私はそれを見てそれに応じて更新します。ありがとう! – llaughlin