2

私は Linq と SQL の両方が得意ではありません。しかし、私は SQL をより多く使用し、LINQ を使用することはあまりありませんでした。LINQ を支持する多くの記事を読みました。私は SQL の道を進みたくありません (つまり、ストアド プロシージャの作成やデータの操作など)。

データに関連するすべての操作について、LINQ から始めたいと思います。これをやりたい理由は次のとおりです。

  1. ストアド プロシージャを記述するのではなく、アプリケーションを介してデータベースを完全に制御したい (ストア プロシージャの記述が苦手なため)
  2. 自分のプロジェクトを簡単な保守ビューとして作成したい
  3. 開発を早めたい

そのために、私はそれを知っています:

  1. dbml ファイルを追加し、そこにテーブルをドラッグ アンド ドロップする必要があります
  2. dbContext クラスなどを使用する

しかし、知りたいのですが、方法はありますか:

  1. dbml ファイルを作成せずにデータベースにアクセスできますか?
  2. 同じためにLinq to Entitiesを使用する必要がありますか?
  3. dbml ファイルの使用を避ける良い方法でしょうか? データベースが変更されるたびに、毎回テーブルを削除して削除する必要があるため
  4. また、linqToSql が非推奨であり、.net の未来ではないと見なされている多くの投稿に出くわしましたか?

疑問はたくさんありますが、新しい技術を始めるとき、それは当然だと思いますか?

初心者向けの便利な記事を見つけました。

[http://weblogs.asp.net/scottgu/archive/2010/08/03/using-ef-code-first-with-an-existing-database.aspx][1]

さらに調査を行った後、次の結論に達しました。

1) dbml ファイルの作成を回避しても、データベースにアクセスできますか??

ANS はい。ただし、dbml の代わりに edmx ファイルが作成されます。

2)同じためにLinq to Entitiesを使用する必要がありますか?

ANS はい、エンティティへの linq を使用できます。

3) dbml ファイルの使用を避けるのは良い方法でしょうか? データベースが変更されるたびに、毎回テーブルを削除して削除する必要があるため

ANS では、テーブルを削除して再度作成する必要はありません。これらは、データベースの選択した部分を更新できるオプションであり、dbml を避けていません。edmx ファイルが作成され、多くの点で dbmls とほとんど同じになります。

4) また、linqToSql が非推奨であり、.net の未来ではないと見なされている多くの投稿に出くわしましたか?

ANS はい、将来の開発では減価償却されます。バックエンドとして sql サーバーのみをサポートします。

私が正しいことを願っています。他の提案があれば教えてください。

4

1 に答える 1

0

LINQ は、データのコレクションをクエリして投影する方法です。たとえば、LINQ を使用して、データベースまたは配列からデータをクエリおよび整形できます。LINQ 自体は、下にあるデータベースとは何の関係もありません。

ORM (Object Relational Mapper) テクノロジを使用して、データベースのテーブルに格納されているデータをオブジェクトのコレクションとして射影します。オブジェクトのコレクションを取得したら、LINQ を使用してクエリを実行できます。

これで、Entity Framework、NHibernate、Linq2Sql など、多くの ORM テクノロジから選択できるようになりました。dbml ファイルを維持したくない場合は、Entity Framework が提供するコード ファースト アプローチをご覧ください。

次に、LINQ データ プロバイダーと呼ばれるものがあります。LINQ クエリを受け取り、それを特定のデータベースを対象とする SQL に変換し、クエリを実行して、結果を一連のオブジェクトとして取得します。上記の ORM の多くには、その一部として LINQ データ プロバイダーが組み込まれており、データを取得する際にバックグラウンドで動作します。

データ層のリポジトリや作業単位など、いくつかのパターンを調べることをお勧めします。これらのパターンを正しく使用すると、データ アクセス コードがアプリケーションの上位レイヤーから分離されます。これにより、アプリケーションの残りの部分に影響を与えることなく、データ アクセス テクノロジが廃止された場合に変更できます。

LINQ は素晴らしいテクノロジです。ぜひ試してみてください。

私は自分の経験に基づいて上記の回答を作成しました。自分の意見を追加したいかもしれない私よりも上記のテクノロジーをよく理解しているSOユーザーがたくさんいると確信しています

幸運を

于 2013-04-02T08:57:43.840 に答える