2011-01-03 3 views
1

내가 가지고있는 다음과 같은 클래스 : 이제Entity Framework 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); 
     } 
    } 

나는 예외를 다음 코드를 얻을 RUN (GenericArguments [0], System.Data.Entity.Internal '에 대한'선택 System.Int32 ' .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

'where'절을 query1에 지정하면 잘 작동하는 것 같습니다.

+0

아니요, 'where'절 –