4

私はEntityFrameworkが本当に好きですが、私にとって挑戦的な重要な要素がいくつかあります。アソシエーション列でEntityDataSourceをフィルタリングする方法を教えてもらえますか?EFはFK値を非表示にし、代わりにAssociationプロパティを持ちます。PersonTypeアソシエーションを持つEntity、Personが与えられた場合、Personエンティティをタイプでフィルタリングしたい場合は、次のようなものが機能することを期待していました。

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

また

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

あるいは

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

しかし、それらはどれも機能しません。誰かがこれを行う方法を知っていますか?

4

2 に答える 2

1

あなたが探している答えには、次のような Include メソッドの使用が含まれると思います。

entities.it.Include("PersonType").Where(a => a.PersonType.PersonTypeID = '1');
于 2009-03-23T19:02:14.793 に答える
0

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

このようなことは何もしていないことを認めなければなりませんが、このトリックを使用して、関連するエンティティを最初に読み込まずにエンティティを更新/作成しました。

于 2009-03-12T15:58:22.727 に答える