質問

Entity Frameworkは本当に好きですが、私にとっては挑戦的な重要な要素がいくつかあります。 AssociationカラムでEntityDataSourceをフィルタリングする方法を教えてもらえますか? EFはFK値を非表示にし、代わりにAssociationプロパティを持っています。 PersonTypeの関連付けを持つエンティティPersonを指定すると、Person Entityをタイプ別にフィルタリングする場合、次のように動作するはずです。

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

または

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

または偶数

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

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

役に立ちましたか?

解決

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

entities.it.Include("PersonType").Where(a => a.PersonType.PersonTypeID = '1');

他のヒント

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

このようなことをしていないことは認めざるを得ませんが、このトリックを使用して、最初に関連するエンティティをロードせずにエンティティを更新/作成しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top