質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

LINQ

LINQとはLanguage INtegrated Queryの略で、「統合言語クエリ」という意味です。C#やVisual Basicといった言語のコード内に記述することができるクエリです。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

3回答

4566閲覧

Linqでデータを取得する方法

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

LINQ

LINQとはLanguage INtegrated Queryの略で、「統合言語クエリ」という意味です。C#やVisual Basicといった言語のコード内に記述することができるクエリです。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2017/05/11 02:00

ASP.NET MVC5で環境はVisual Stadio2015で、SQL Server2014を
使っています。
二つのテーブルから、いくつかデータを取得したいのですがLinqでの
sql文がわからないので教えていただきたいです。
テーブルInfoの中の情報すべてと、テーブルKubunのKubunNameを取り出したいです。現在は参考書と少しわかる人に聞いたりして、List<Info>にクラスを作って、テーブルInfoの中身は全て取り出すことは出来ています。
テーブルInfoはKubun<ICollection>があるので値を取ってこれるとは
思っています。

○テーブル-Info
InfoId-Guid
MasterId-Guid
Rank-int
.
.
.
KubunMaters-ICollection<KubunMater>

○テーブル-kubun
kubunMasterId-Guid
kubunbumon-string



KubunMei-string
Infos-ICollection<Info>

public List<Info> GetKiji(Guid Id, Guid MasterId) { using (var context = GetInfoDbContext()) { using (var rep = new InforRepository(context)) { //全部、またはユーザの権限部門が対象 var info = rep .Where(e => e.MasterId == MasterId && e.Category == (int)DEF.Category.全社 || (e.KoukaiHanniKubun == (int)DEF.Category.部門 && e.KubunMaster .Where(e1 => e1.UserBumonKengens .Where(e2 => e2.MasterId == MasterId) ) .ToList(); return info; } } }

上記文では情報が足りないなど、ありましたら言って下さい。
すみませんが、お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

別のスレッド https://teratail.com/questions/75628 の質問と内容がほぼ同じなのですが、同じ本を読んでいるとかでしょうか?

それはともかくとして・・・

テーブルInfoの中の情報すべてと、テーブルKubunのKubunNameを取り出したいです。

KubunName というのは見当たりませんが? KubunMei の間違い?

そうだとしても何をしたいのかよくわからないです。想像を膨らませると・・・

Info テーブルのレコードと Kubun テーブルのレコードが外部キーで関連付けられていて、Info テーブルの各レコードと関連付けられている Kubun テーブルのレコードの KubunMei フィールドの値を取得したいということですか?

そうであれば、ナビゲーションプロパティが定義されているはずなので、それから取得できると思います。

上記の想像がハズレでしたら、何をどういう条件で取得したいのか、ここに書いてあること以外は何も知りえない第三者が分かるように書いてください。

それから、Code First で DB を作ったのか DB First で Entity Data Model (EDM) を作ったのか、どちらでしょう? どちらにしても Model にクラスとプロパティの定義があるはずなので、質問に書いてあるような略し方をせず、生のコードを貼ってください。

あと、controller と Entity Data Model (EDM) の間にリポジトリクラスを入れているようですが、それを使うのであればリポジトリクラスのコードも必要最低限記載するようにしてください。今は context や rep の正体が不明なので誰もはっきりしたことは言えません。

投稿2017/05/11 04:25

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/05/12 05:27

その方の質問と似てるのでそうかもしれません!! SurferOnWwwさん、私の分らない質問にいつも答えていただいて、ありがとうございます。 やりたいことは、想像を膨らませていただいた通りです。
退会済みユーザー

退会済みユーザー

2017/05/12 23:56

質問者さんのやりたいことに対する想像は当たっていた ⇒ 回答(ナビゲーションプロパティで取得)も当たっている ⇒ 問題は解決・・・と思っていますが、いかがですか?
guest

0

要はLinqでLEFT OUTER JOINしたいってことでしょうか?
なら
LINQでLEFT OUTER JOINする
あたりを読んでみては?

投稿2017/05/12 18:11

dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

”DEF” ”テーブルKubunのKubunName”
↑どこにも定義されていませんが

情報が足らな過ぎてわかりません

投稿2017/05/11 04:06

dn315

総合スコア201

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/05/12 05:28

dn315さん、情報少なくてすみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問