2011-01-03 11 views
1

私は以下のクラスを持っている:私は、次のコードを実行するとエンティティフレームワークCTP5、コードファースト。ネストされたクエリエラー

public class Category 
    { 
     public int CategoryId { get; set; } 
     public string Name { get; set; } 
    } 

public partial class CategoryMap : EntityTypeConfiguration<Category> 
    { 
     public CategoryMap() 
     { 
      this.HasKey(c => c.CategoryId); 
      this.Property(c => c.Name).IsRequired().HasMaxLength(400); 
     } 
    } 

public class MyObjectContext : DbContext 
    { 
     public MyObjectContext(string connectionStringName) 
      : base(connectionStringName) 
     { 
     } 

     public DbSet<Category> Categories { get; set; } 

     protected override void OnModelCreating(ModelBuilder modelBuilder) 
     { 
      modelBuilder.Configurations.Add(new CategoryMap()); 
      base.OnModelCreating(modelBuilder); 
     } 
    } 

は今、私はGenericArguments [0]、(例外を取得し「可能System.Int32」、System.Data.Entity.Internal」に.Linq.ReplacementDbQueryWrapper`1 [TEntity] TEntity '」タイプの制約に違反')

DbDatabase.SetInitializer<MyObjectContext>(new DropCreateDatabaseIfModelChanges<MyObjectContext>()); 
       using (var context = new MyObjectContext("NopSqlConnection")) 
       { 
        var query1 = from c in context.Categories 
           select c.CategoryId; 
        var test1 = query1.ToList(); //works fine 

        var query2 = from c in context.Categories 
           where query1.Contains(c.CategoryId) 
           orderby c.Name descending 
           select c; 
        var test2 = query2.ToList(); //throws the exception 
       } 

任意の提案は?

答えて

0

query1に 'where'句を指定するとうまくいくようです。

+0

いいえ、 'where'句でも機能しません –

関連する問題