2016-05-15 12 views
0

全体にEntity Frameworkの内の関連項目を見つけることがここに私のデータモデルの関連部分です:は2つのホップ

data model

私はそれが何の実体を知っているし、編集するグリッドを構築する汎用的なデータ入力画面を持っていますその表のデータ。私が約束を得るまで、すべてがうまくいっていた。私はサービスを使ってドロップダウンをロードするようにコードを作成し、リストをロードするのに十分な情報がないことに気付きました。

generic data entry screen

ここPromiseためのコードです:システムを設計した人間として

namespace biz 
{ 
    public class Promise: EFObject<Promise> 
    { 
    public int Sequence { get; set; } 

    public decimal Hours { get; set; } 

    [ForeignKey("Service")] 
    public int Service_Id { get; set; } 

    public Service Service { get; set; } 

    public Constraint[] Constraints; 
    //public Dollars Allocation { get; set; } 
    } 

} 

は、私が唯一所有しているパッケージを所有しているメンバーに属するサービスをロードしなければならないことを知っています約束。しかし、一般的なデータ入力画面として、私はそれをどのように知っていますか?私は何もハードコーディングできません。

サービスを選択できるサービスのリストを示すための約束を注釈する方法はありますか?何らかの種類の制約(Service_Idはfromから選択する必要があります。Member_Id =

Promisesに記載されているものはすべて、一般的なデータ入力画面のフェアゲームです。論理的で一貫性がある限り、同じルールを適用できます任意の入力画面に任意の場所にエンティティカタログインチ

+0

あなたは 'メンバー 'として'プロミス 'メンテナンス画面にいますか?私は、たとえば述語ビルダーを使って、クエリを動的に構築する方法を探していると思います。 –

+0

@GertArnold、こんにちは、私は、より多くの背景のスクリーンショットを追加しました。私は、宣言的な方法や別の外部キーを追加する方法があることを期待しているので、EFは、そのメンバーのパッケージの約束の文脈で現在のメンバーのサービスを取得することしか知りません(その中から選択するオプションを検討するとき) 。私は現在、私のデータモデルはこれを強制していないことがわかります。おそらくこれが最初に修正するべきことです。ありがとう! – toddmo

+0

最後に、EFはSQLを実行します。 SQLでは(結合をスキップして)実行できないことはEFでは実行できません。 'Promise.Package.Member_Id = memberId'のようなものが必要です。 –

答えて

関連する問題