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

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

新規登録して質問してみよう
ただいま回答率
85.47%
LINQ to Entities

LINQ to Entitiesは、言語統合クエリであるLINQをEDMに行う機能を指します。C#/VBといった言語に統合されており、Visual StudioのIntelliSense機能を始めとするコーディングの様々なサポートを受けることが可能です。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

0回答

1980閲覧

Linq To Entities でSQLのSELECT項目が可変の場合。

wai_abcd

総合スコア9

LINQ to Entities

LINQ to Entitiesは、言語統合クエリであるLINQをEDMに行う機能を指します。C#/VBといった言語に統合されており、Visual StudioのIntelliSense機能を始めとするコーディングの様々なサポートを受けることが可能です。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2019/01/10 00:50

VB.netを使用しています。
Linq To Entitesを使ってDB処理をしています。
通常は
あらかじめEntityを作ってそれに入れる形で取得すると思います。

Dim a As TestEntity = db.TBL_TEST.Single()

ほとんどないシチュエーションだとは思いますが、今回はSQLで取得する項目が可変です。

SELECT A, B FROM TABLEA SELECT A, B,…FUNCTION(A,B) AS Z FROM TABLEA(取得する項目のほうが可変でFunctionからの結果取得もあり)

項目数が10個以内固定とかなら全部Entityに入れて必要な項目だけセレクトするやり方か最悪全部取って必要なものを使うでいいんですが、
今回項目が最大100個あり、SQLでどれとるかも状況によって可変という状態なのでEntityにするのが難しい状態になってます。SQLはしょうがないので直書きする予定です。

それで直書きしたSQLを直接実行して

Dim arrayA() As Object = db.Database.SqlQuery<T>("SELECT A, B,…Z FROM Items;").Single();

みたいな形で配列でとってその配列で処理できるような形で実装できればと思ったのですが、
調べてもそのような手法が見つかりませんでした。
Javaとかで項目可変でもObject配列でまとめて取得してくれるライブラリがあったりするのですが、
そういう対応はLinqToEntitesで可能なのでしょうか?
そもそもかなりLinqToEntitesの概念から外れたやり方なのでできないのでしょうか。

以上、よろしくお願いします。

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

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

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

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

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

hihijiji

2019/01/10 03:35

SQLは固定して、取得する可能性のある項目を全て持ってくるのではだめなのですか?
x_x

2019/01/21 08:03

難しい状態というのはなぜでしょうか? 最大でも使うテーブル数分あればいいのでは?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問