代码之家  ›  专栏  ›  技术社区  ›  jlembke

对关联值筛选EntityDataSource

  •  4
  • jlembke  · 技术社区  · 16 年前

    我真的很喜欢实体框架,但是有一些关键的部分对我来说是一个挑战。有人能告诉我如何在关联列上筛选EntityDataSource吗?ef隐藏fk值,而具有关联属性。如果一个实体、个人和个人类型关联,如果我想按类型筛选我的个人实体,我希望这样的东西可以工作:

    GridDataSource.EntityTypeFilter = "it.PersonType.PersonTypeID = 1";
    

    GridDataSource.Where = "it.PersonType.PersonTypeID = '1'";
    

    甚至

    GridDataSource.WhereParameters.Add(new Parameter("it.PersonType.PersonTypeID", DbType.Object, "1"));
    

    但这些都不起作用。有人知道怎么做吗?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Keck    16 年前

    我认为您要寻找的答案包括使用include方法,例如:

    entities.it.Include("PersonType").Where(a => a.PersonType.PersonTypeID = '1');
    
        2
  •  0
  •   Davy Landman    16 年前

    你试过用LINQ在内存中应用过滤器吗?(或者根据数据库?)

    var personType = new PersonType { Id = 1 };
    var query = PersonDataSource.Where(p => p.PersonType.Equals(personType));
    // use this query as the DataSource for your GridView
    

    我必须承认我没有做过类似的事情,但是我使用了这个技巧来更新/创建一个实体,而不首先加载相关的实体。