2011-01-03 11 views
1

Ich habe die folgenden Klassen:Entity Framework CTP5, Code-zuerst. Verschachtelte Abfrage Fehler

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); 
     } 
    } 

Nun, wenn ich den folgenden Code ausführen ich eine Ausnahme erhalten (GenericArguments [0], 'System.Int32', auf ‚System.Data.Entity.Internal .Linq.ReplacementDbQueryWrapper`1 [TEntity]‘verletzt die Einschränkung des Typs 'TEntity') Irgendwelche Vorschläge

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 
       } 

?

Antwort

0

Es scheint gut zu funktionieren, wenn Sie angeben 'where' -Klausel auf Abfrage1

+0

Nein, es funktioniert nicht sogar mit 'Where' -Klausel –