0

エンティティ フレームワーク 4.1 と関係に問題があります。

ここに私のクラスがあります:

[Table("PROJTABLE")]
    public class Certifikat {
        [Key]
        public long Recid { get; set; }

        public String Projid { get; set; }           
        public virtual StandardAndScope StandardInfo { get; set; }
}

[Table("DS_CRT_PROJSTANDARDSCOPE")]
    public class StandardAndScope {
        //[Key]
        //public long RECID { get; set; }
        [Key]
        public String Projid { get; set; }

        public String Standard { get; set; }
        public String Scope { get; set; }
    }

私はデータベースを制御できないため、規則をサポートするためにキーと ID を変更することはできず、この設定に固執しています。

私の問題は、Certifikat が 1 つの StandardAndScope と関係を持つことができることです。両方のテーブルのキーは Projid と呼ばれますが、これは厳密にはどちらのテーブルのデータベースの主キーでもありません。

私が本当に言いたいのは、「certifikat c join standardandscope s on c.Projid=s.Projid」ということだけです。

流暢なAPIでこれを達成するにはどうすればよいですか?

4

1 に答える 1

1

私はあなたがこのようなものを探していると思います:

var result = dataContext.Certifikats
    .Join(dataContext.StandardAndScopes,
        c => c.Projid,
        s => s.Projid,
        (c, s) => new
        {
            Certifikat = c,
            StandardAndScope = s
        });

クラスdataContextのインスタンスはどこにありますか。DbContext

于 2012-11-23T14:35:28.350 に答える