LINQ to SQLルックアップテーブル?おそらく参加しますか?道に迷いました… ;/

linq linq-to-sql

これがルックアップテーブルと呼ばれるかどうかわからない…​ これがスキーマのスクリーンショットです。 http://apoads.com/db-schema.png

私がやりたいことは、MilBase.BaseIDが与えられた値であるAdとMilBaseテーブルを結合することです。 その結果、ad.MilBase.BaseNameなどのようにデータにアクセスできるようになります。

私は今このことに頭を包むようには思えない… ; /

  0  0


ベストアンサー

あなたの問題はあなたのスキーマがAdとMilBaseの間の多対多の関係の意味論を持っていて、それであなたがLINQでこれをしたいと思うであろう本当に望ましいやり方がad.Milbasesになるだろうということです。 。

LINQ To SQLが多対多の関係を直接、実際にはサポートしていないという事実によって問題はそれ以上改善されません(ルックアップテーブルが1対1または1対多の関係のみを定義していると仮定)あなたはのような何かをしなければならないでしょう

ad.Adbases.Single()。MilBase

もちろん、常に存在すると仮定します。そうでない場合は、先に複雑なことが起こります。

もちろん、結合も常に可能です。どちらにしても、これがあなたが探していた情報ではない場合、AdとMilbaseの関係を明確にしてもらえますか? (多対多など)。 また、これが多対多ではなく、それが可能な場合は、これをMilbaseまたはAdテーブルのいずれかの外部キーに変更します。

編集:あなたのコメントに応えて、

あなたは何かをすることができます

var query = db.adのaからnew {a.property1、a.property2、...を選択します。 Milbases = a.Adbases.Select(s => s.Milbase)};

明らかにそのコードはコンパイルされません、しかしそれはあなたに大雑把な考えを与えるべきです – それは私がそれがより良い方法でされることができると確信します、しかしそのような何かはうまくいくはずです。

1


タイトルとURLをコピーしました