10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Entity FrameworkでJoinを使わずに内部結合する

Last updated at Posted at 2015-09-04

RDBからデータ取得する時はテーブルの結合は必須です。
しかしながら、メソッド構文でJoin書くのってめんどくさい。
*テーブル構造はEntityFramework6で単純なデータ表示フォームを作成のを流用。

var result = entities.Models.Join(entities.Titles,                                //結合するEntityの指定
    model => model.ModelID, title => title.ModelID,                               //結合キーの指定
    (model, title) => new { model.ModelName, title.TitleName, title.RunningDate } //取得するデータの指定
    ).ToArray();

これをノータイムで読める人ってほとんどいないんじゃないですかね……。
おとなしくクエリ構文で書け?アーアーキコエナイ

外部キーをしっかりEntityクラスないしContextクラスで設定していればこんな書き方ができます。

var result = entities.Titles.Select(title => new { title.Model.ModelName, title.TitleName, title.RunningDate }).ToArray();

今回のは多→1の対応のものですが、SQLServerからの自動生成されたクラス見てる限り、逆方向(1→多)の対応のものも似たような感じで実現できそうな感じはします。

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?