Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc DataContext在where语句中缺少属性_Asp.net Mvc_Entity Framework_Entity Framework 5 - Fatal编程技术网

Asp.net mvc DataContext在where语句中缺少属性

Asp.net mvc DataContext在where语句中缺少属性,asp.net-mvc,entity-framework,entity-framework-5,Asp.net Mvc,Entity Framework,Entity Framework 5,有人能告诉我为什么在使用select语句之后,where语句中没有属性吗 db.Select(x => x.Lft).Where(x => x.DepartmentId == id); // missing properties in the where clause 你能帮我修改代码来实现它吗?请给我一个例子来说明如何实现它。谢谢 课程: public class Department { public Department() { Produc

有人能告诉我为什么在使用select语句之后,where语句中没有属性吗

db.Select(x => x.Lft).Where(x => x.DepartmentId == id); 
// missing properties in the where clause
你能帮我修改代码来实现它吗?请给我一个例子来说明如何实现它。谢谢

课程:

public class Department
{
    public Department()
    {
        Products = new List<Product>();
    }

    public long DepartmentId { get; set; }

    [Required(ErrorMessage="Please enter a name for the departments.")]
    [DataType(DataType.Text)]
    public string Name { get; set; }

    [DataType(DataType.Text)]
    [Required(ErrorMessage = "Please enter a valid url for the department.")]
    public string Url { get; set; }

    public int Lft { get; set; }
    public int Rgt { get; set; }
    public bool MenuItem { get; set; }

    public virtual ICollection<Product> Products { get; set; }
}
公共课部
{
公共部门()
{
产品=新列表();
}
公共长部门ID{get;set;}
[必需(ErrorMessage=“请输入部门名称”。)]
[数据类型(DataType.Text)]
公共字符串名称{get;set;}
[数据类型(DataType.Text)]
[必需(ErrorMessage=“请输入部门的有效url。”)]
公共字符串Url{get;set;}
公共整数Lft{get;set;}
公共int Rgt{get;set;}
公共bool菜单项{get;set;}
公共虚拟ICollection产品{get;set;}
}
我的DataContext类

internal class DepartmentsTypeConfiguration : EntityTypeConfiguration<Department>
{
    public DepartmentsTypeConfiguration()
    {
        Property(department => department.DepartmentId)
            .HasColumnName("DepartmentId")
            .HasDatabaseGeneratedOption(databaseGeneratedOption: DatabaseGeneratedOption.Identity);

        Property(department => department.Name)
            .HasColumnName("Name")
            .IsRequired();

        HasKey(key => key.DepartmentId)
            .HasMany(x => x.Products)
            .WithRequired(x => x.Department)
            .WillCascadeOnDelete(true);            
    }
}


public class LeapFrogDataContext : DbContext
{
    public DbSet<Department> Departments { get; set; }
    public DbSet<Product> Products { get; set; }
    public DbSet<ProductSpecification> ProductSpecifications {get; set;}
    public DbSet<Specification> Specifications { get; set; }
    /**/
    static LeapFrogDataContext()
        //: base("name=LeapFrogDataConnection")
    {
        //Database.SetInitializer(new LeapFrogInitializer());
        //Database.SetInitializer(new DropCreateDatabaseIfModelChanges<LeapFrogDataContext>());
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new DepartmentsTypeConfiguration());
        modelBuilder.Configurations.Add(new ProductsTypeConfiguration());
        modelBuilder.Configurations.Add(new SpecificationsTypeConfiguration());
        modelBuilder.Configurations.Add(new ProductSpecificationsTypeConfiguration());

        base.OnModelCreating(modelBuilder);
    }
}
内部类部门规范配置:EntityTypeConfiguration
{
公共部门专业配置()
{
属性(department=>department.DepartmentId)
.HasColumnName(“部门ID”)
.HasDatabaseGeneratedOption(databaseGeneratedOption:databaseGeneratedOption.Identity);
属性(department=>department.Name)
.HasColumnName(“名称”)
.IsRequired();
HasKey(key=>key.DepartmentId)
.HasMany(x=>x.Products)
.WithRequired(x=>x.Department)
.WillCascadeOnDelete(真);
}
}
公共类LeapFrogDataContext:DbContext
{
公共数据库集部门{get;set;}
公共数据库集产品{get;set;}
公共数据库集产品规范{get;set;}
公共数据库集规范{get;set;}
/**/
静态LeapFrogDataContext()
//:base(“name=LeapFrogDataConnection”)
{
//SetInitializer(新的LeapFrogInitializer());
//SetInitializer(新的DropCreateDatabaseIfModelChanges());
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(newdepartmentsTypeConfiguration());
modelBuilder.Configurations.Add(newproductsTypeConfiguration());
modelBuilder.Configurations.Add(新规范stypeconfiguration());
添加(新的ProductSpecificationsTypeConfiguration());
基于模型创建(modelBuilder);
}
}
db.Select(x=>x.Lft)
返回
int
的列表,因此在
where
子句中,您将无法访问任何属性

我想你可以切换
选择
where
来实现你想要的。假设
db
是实际的
上下文

db.Where(x => x.DepartmentId == id).Select(x => x.Lft)
这有点奇怪。正常情况下应该是这样的

db.context.Departments.Where(x => x.DepartmentId == id).Select(x => x.Lft)
db.Select(x=>x.Lft)
返回
int
的列表,因此在
where
子句中,您将无法访问任何属性

我想你可以切换
选择
where
来实现你想要的。假设
db
是实际的
上下文

db.Where(x => x.DepartmentId == id).Select(x => x.Lft)
这有点奇怪。正常情况下应该是这样的

db.context.Departments.Where(x => x.DepartmentId == id).Select(x => x.Lft)