1

誰かfromがlinqで何に使われているか説明できますか? MySQL ではfrom、テーブルを指定するために使用されます。しかし、linqでの使用がわかりません。

   var artists = from a in context.Artists
                 where a.Name.StartsWith("A")
                 orderby a.Name
                 select a;
4

3 に答える 3

3

基本的に同じ意味です。具体的fromには、データ ソースと範囲変数を指定できます。

つまりfrom a in Artists、データ ソースを介してArtists、シーケンスの連続する要素に名前を付けますa。クエリの残りの部分では、 のa要素を参照しますArtists

あなたが書いた上記のコードは、

var artists = context.Artists
                     .Where(a => a.Name.StartsWith("A"))
                     .OrderBy(a => a.Name);

SQL データベースを抽象化する LINQ プロバイダーで上記を実行した場合、最終的には次のようなものに変換されます。

select * from Artists a
where a.Name is like 'A%'
order by a.Name

LINQ での順序が少し異なる理由は、パーサーと IntelliSense エンジンを支援するためです。

于 2013-06-16T15:47:02.167 に答える
3

これは、SQL とまったく同じ演算子です。クエリ ステートメントは、IntelliSense と型推論が機能するように逆方向に記述されているだけです。FROM が最後にある場合、これらの機能はうまく機能しません。

ツールを使用して SQL ステートメントを作成する場合も、基本的に同じことを行っています。最初に FROM をクエリする対象を指定し、次に JOIN リンクを描画してから、関心のある列を SELECT します。Linq クエリ内包表記と同様に、逆方向のワークフローでもあります。実際、SQL は後方にあると主張することができます :)

于 2013-06-16T15:47:17.010 に答える
1

すべてのLINQクエリ操作は、次の 3 つの異なるアクションで構成されます。

  • データ ソースを取得します。
  • クエリを作成します。
  • クエリを実行します。

from句はデータ ソースを指定し、句whereはフィルターを適用し、句selectは返される要素の型を指定します。

したがって、クエリは次のようになります

var artists = context.Artists
                     .Where(a => a.Name.StartsWith("A"))
                     .OrderBy(a => a.Name);
于 2013-06-16T15:49:06.690 に答える