質問

また、"初心者ガイドLINQ"ポストにここにStackOverflow(初心者ガイドLINQもっと後の質問:

いいランプを新たなプロジェクトがほぼすべてのデータベースのopの比較的シンプルなデータの検索が別のセグメントのプロジェクトについてを書き込みます。多くの他のプロジェクトのこれまでの保存の手続きいと思います。しかし、そういった活用LINQ to SQLであれば、良いですね。

なので、こ簡単にデータを検索し、アプローチは、LINQ to SQLれprocs?特定のプロまたはコンなの?

感謝。

役に立ちましたか?

解決

メリットがあLINQ上sprocs:

  1. 安全タイプ:と思うことです。
  2. 抽象化:これは特に、 LINQ to Entities.この抽象化も可能にするフレームワークの追加追加の改善につながるで簡単にご利用下さい。 PLINQ 例の追加マルチスレッディング支援LINQ.コードの変更を最小限に追加します。うにくいこのデータにアクセスコードするだけで通話sprocs.
  3. デバッグ支援:使用できます。純デバッガとデバッグします。とsprocsはできません簡単にデバッグ、SQLおよびその経験は大きくつのデータベースベンダー(MS SQLサーバがクエリーの分析装置なう機会を設けていきたいと思います。
  4. ベンダー agnostic:LINQの作品のデータベースの支援データベースでのみ増加しました。Sprocsは常に携帯との間のデータベースのいずれかに異なる文法や機能支援の場合はデータベースsprocsるのです。
  5. 展開:その他いて述べたように、このメソッドはすでになく、コーポレート-ガバナンスを単一の組立により、コーポレート-ガバナンスのsprocs.このものに関#4.
  6. :んぶT-SQLデータアクセスもついてのデータにアクセスAPI(ADO.NETに必要な呼び出しのsprocs.この関連#3、#4.

一部のデメリットのLINQ vs sprocs:

  1. 交通ネットワーク:sprocsる必要があるのはserialize sproc名引数データの線がLINQを送信し、全体を返します。ここでは本当に最悪の場合、クエリーは非常に複雑です。しかし、LINQの抽象化できるMicrosoftの強化を進めるにあた。
  2. フロート制":Sprocsを有効に活用することができるデータベースのfeatureset.LINQがより一般的なものです。これは普通に関わらず、あらゆる言語の抽出などC#vsアセンブラ).
  3. の再コンパイルを伴:必要な場合は変更にないデータアクセスに必要なものを再コンパイル、バージョン、再デプロイ出来だ。Sprocsで 時には できるDBAチューニングのデータアクセスの日常的な再ものです。

セキュリティーおよび管理というのはどう人々について議論します。

  1. 安全保障:例えば、保護できる機密データへのアクセスを制限するテーブルに直接、ACLsのsprocs.とLINQ、しかし、または制限に直接アクセスのテーブル、代わりにACLsに更新可能なテーブル 眺望 めに同様の末と仮定してデータベース対応の更新操作する必要があります。)
  2. 管理性:用意見もの遮蔽用非破壊からのスキーマ変更のようなテーブル正規化).を更新することができますのビューを必要とせずデータにアクセスコードが変化します。

使用した大きなsprocんが、私の始め方向のLINQとしてより良い代替します。がある場合には当該地域sprocs明確に、そして私がまだまだ多いと思われる書sprocがアクセス用LINQ.:)

他のヒント

私は提案国に何もかも保存手順は、すべての理由を管理していharping長い年月がかかります。の場合はLinqのではありませんの性能差を簡単に編ます。

さま、ありがとうございましたから、その時のこの決定:利用ORMカップルでおしっかりお客様のデータモデルです。A DBAのない自由度を変化させることができ、データモデルに強いることなく変更、おめのコードです。記憶してい手続きは非表示にすることができこれらの変化はある程度のパラメータのリストの結果セット(s)から返される手順はその契約のinnards変更でき、ようとして受けます。

また、場合にLinqを使い複雑なクエリー、チューニングのデータベースとなり困難であった。が保存されている手続きが遅い、DBAので、完全にコミュニケーション、多くのオプションは、その契約が満足したときが行われます。

自然と精神との融合によって、多くの場合深刻な問題に応用した対応による変化のスキーマやコードに格納手続きなどを展開し、コードです。

かhybirdアプローチできるのでとLinq?Linqではもちろん、使用する呼び出納手続き

Linq to Sql.

Sqlサーバがキャッシュのクエリを計画な性能を得るためのsprocs.

おlinq諸表の一方で、論理的一試みます。Sprocs常に少分離が難しいの維持-テストです。

また新しいアプリケーションを最初から今のように使用Linq、sprocs.

のための基礎データの検索といっLinqます。

今のLinqがその場で発音を確認することがは、次のような特長があります。

  1. デバッグのダルマはかつてないほど容易になりました.
  2. コンパイル時の安全性がスキーマの変更あります。
  3. 展開が容易になっていまするときはDLLます。な管理の展開のためのイントロダクションです。
  4. でLinqを支援できる照会に何かを実装するIQueryableインタフェースでの使用は、同じ構文を照会するXMLオブジェやその他のデータソースな学習の新しい構文

LINQのまま膨張の手続きキャッシュ

る場合、アプリケーションを利用LINQ to SQLのクエリの使用を含む文字列のできる高い可変長さにSQLサーバーの手順でキャッシュが肥大化とショールーム:イメージのクエリーのためのゆる文字列の長さです。例えば、以下の非常に単純なクエリー作成に対する人です。AddressTypesテーブルのAdventureWorks2008データベース:

var p = 
    from n in x.AddressTypes 
    where n.Name == "Billing" 
    select n;

var p = 
    from n in x.AddressTypes 
    where n.Name == "Main Office" 
    select n;

である場合これらのクエリを実行すると、いつのSQL Serverの手順でキャッシュ:一されてNVARCHAR(7)その他、NVARCHAR(11).この場合にあった何千何百もの異なった入力文字列から全ての異なる長さのものがある。手続きをキャッシュのような必要以上に満ちたさまざまな計画のため全く同じクエリ。

ます。 https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=363290

私はLINQの引数があるという人々からない歴史を持つデータベースの開発(一般).

特にを使用する場合は、製品のように対DBプロチームスイートは、多くの議論が行ったことはない、たとえば、次のようになります。

困難なものに維持-試験:VSが全面的にバックアップ構文チェック、スタイルチェック、参考と制約チェックします。でもフルユニット試験能力、リファクタリングツールです。

LINQがtrueのユニット検査など(心に)失敗した場合には、酸ます。

デバッグが容易なのでLINQ:なぜですか?VSできるステップからマネージドコードで、通常のデバッグのSPs.

めDLLより導入スクリプト:再度、VSの救済の場を構築することができ、展開し全データベースやデータを安全に漸進的変化します。

いぶTSQLとLINQ:味付け済みでお届けですが、だいぶLINQが同性に対する効果の検証である。

ないんですけこされている。きた文理融合ということになる隔離が音が良い、ただの変化を満たす契約しているわけではないのに正しい。できるか、正しい結果が必要な文脈できないものはなく、そのコンテキストからの呼び出します。

あ疎結合のアプリの最終目標は、すべての良いプログラマーとしてしっかり増えています。できるものに変更に分離のですが、そのユニットテストを確保しながらまだ返に適します。

する前にすべてのget upsetと思うのLINQが、その場所は、グランドです。ができるため、データのアップグレード、新製品を受けないと思うのではの場所を保存。この見た響きによるMVPでTechEdこれは無名).

編集:の商品の保管手続をいたしていきたいと思いまだ必要な読み取りによって何を思っルの変更上記diatribe;)

LINQで新しいてます。LINQが発明した交換を格納す。

ここにフォーカスをあてます一部の性能の神話&連結実績が、以下、"商品"はもちろん私が間違ってい;-)

(1)のようにLINQ statmentできる"キャッシュ"にSQLサーバーでない。一部です。"商品"に実際の実行時の翻訳LINQ書TSQL statment.しかし、性能面では、ハードコードADO.NET SQL文でもてはやされ、よりLINQ.

(2)たとえば、顧客サービスのUIは"アカウント転送機能が装備されています。この機能自体が更新10DBテーブルを返しのメッセージに突入。とLINQ、建設見送としての一つのバッチにSQLサーバーです。この翻訳LINQ->TSQLバッチではほとんどの試合を格納す。理由がありますか?できるので、軌道修正を最小単位の算書に格納されprocedue用のSQLプロファイラおよび実行計画ツールできないこLINQ.

その一つは、時間単DBテーブルの小型セットのデータCRUD、LINQがどSP.がより複雑なロジック、保存手順はパフォーマンスの向上のtweakable.

(3)"LINQ to SQL"簡単な初心者の紹介実績豚.当シニアTSQLんでいない場合は利用カーソル(基本的にすべき使用しないでにカーソルをTSQLいます。とLINQの魅力的な"foreach"ループのクエリに対応してくれたピ書などのコード:

foreach(Customer c in query)
{
  c.Country = "Wonder Land";
}
ctx.SubmitChanges();

きのこのワコードが魅力。ものの背後にある実装では、.NETランタイムで翻訳する更新処理いたしません。がある場合のみ500ラインが500線TSQLバッチがある場合は百万線す。もちろん、経験豊富なユーザーさんはこないというこのお仕事で、その点でも落ちやすくしました。

最高のコードをバーコード、保存の手続きが好きなの少なくとも一部のコードのデータベースコードにはそれを呼び出すように、でLINQ to SQLはLINQ to Entitiesを継続してご利用いただけるのは追加のコードを超えその他のLINQクエリーのほかスをインスタンス化コンテキストオブジェクトです。

LINQあって、その用途別のデータベースやお申込みください。

が、大企業、中央データベース拠点としての共通のデータは多くのアプリケーションを必要と言えます。る必要がありま市中心セキュリティ上の管理、アクセス履歴.る必要がありまでできることの影響を分析す:い小さな変更をデータモデルと新たな事業に必要な何か質問を変更する必要があるとはどんなアプリケーションに必要な再検?眺望および保存の手続います。場合はLINQをすることができること、当プログラマも、常に生産性が高く、私はこれを歓迎するとともに--は誰でも経験でこのようなのでしょうか。

は、DBAは自由に変更 のデータモデルに強いることなくお の変更をコンパイルされたコード.と 保存手順は非表示にすることができこれらの うな変化がある程度から パラメータのリストは、結果セット(s) から返される手続を表す その契約のinnardsできる 変更は、直ていること を受けます。

ないんですけこされている。きた文理融合ということになる隔離が音が良い、ただの変化を満たす契約しているわけではないのに正しい。できるか、正しい結果が必要な文脈できないものはなく、そのコンテキストからの呼び出します。

まぁ、=LINQ,RUP=格納されProcs.また、大型フォーチュン500社では、長年レベルでの管理を含め、正直、この雇用RUP開いRAD開発。いsiloedう非常に限られた知識をどうするかということその他のレベルへすでに使用されています。とsiloed環境うえDBAsのデータを特定のスタート地点として、その他正直に良いのではないかと思いるデモンストレーションの達成にデータ管理を実現。

が大企業に移動 地震や原子力発電所の爆発 ゆっくり開発アリーナ、これは極めて多額のコストがかかります。あることが必要な場合がより早くより保存し、時間とお金、LINQがますますスペード.

あると思いDBAsは、大気中濃度については対LINQな感じを脅かす仕事です。でも、それが自然の女と野獣、皆さん、おはようございます。

と思うとして安心してご利用いただけとprocsのためのものです。

A)執筆すべてのロザリンクとデータベースが少なるので便利でお申し込みのみを摂取することができます。

B)いいオブジェクトモデリングが良い関係をモデル化。

C)試験、開発、保存の手続アプリケーションでは地獄のよりも早くコンパイルを編集サイクルのいずVisual Studio環境です。あなただけ編集F5とヒットを選択またはオフに。

D)での管理が容易な展開を格納手続によりアセンブリ..あなただけのファイルをサーバーを押しF5...

E)の商品が書き込みますァンのコードでない場合は予想外です。

正直、私の究極のものにするためのMS拡大のためにt-sqlできるような参加予impliclitlyのlinqます。t-sqlの知るべきだって思われていると思います。lineitems.一部です。

LINQを禁止するものではありませんが、利用の格納手続きに使用しました混合モードLINQ-SQLおよび LINQ-storedproc.個人的には、嬉しい思いを書きに保存procs....pwet-tu.

また、問題の可能2.0ロールバック.信頼んで行うにはカップルのなかで起こったことです。

していくことが重要だと思うこと抽象化は最高です。が、本来の目的のORMはRDBMSと一致くのOO。しかし、それを手前にLINQによる偏ビットからOOの概念その後スクリューム.概念は、現実にはないわ。お部屋はございません武zealotsます。

いという商品

当CRUDコマンドで簡単にプロファイルの保存手順前ます。この場合の二つの違いはごくわずかである。みプロファイリングのための5(簡易型)fieldオブジェクト以上100,000selectクエリーする場合があります。

一方、ブレーカーは問いるかどうかで快適自らのビジネスロジックにデータベースは、引数に対し保存の手続き

による日付を定義しまLINQとしてのバイクSPしています。行きたい場合は短い旅行として小型の乗客は(この場合2)は、優雅にとLINQ.ものだったのですが、旅の大きいバンドだと思い選択すべきSP.

結論として選んとバイクや車がお使いの環境によってはルート(営業)長(時間)が、旅客のデータ。

希望ので、私が誤っている可能性があります。D

これらすべての回答傾向LINQが主な話開発のしやすさは以下のつのコード、または怠惰に符号といいます。私のようなことです。

メリットはLinq、こちらとして、試験、簡単にデバッグなど、これらが接続され最終的な出力します。これは常に故障の原因になり、エンドユーザーに関す。していただきましたの負荷が多いことをメモリ及びその後にフィルターを適用用LINQ?

再TypeSafety、注意する"を意誤typecasting"を再び貧困層の品質を向上させる"という用linq.その場合でもがあった場合には、データベースの変更などサイズの文字列カラム、そのlinqが必要で再コンパイルされたといtypesafeな..にしてみました。

はしが良く、甘いもの、面白いなどをLINQ、せん断不利の開発者のぐさをやめることが1000倍の悪いることができる最悪期)の業績と比べて格納されProcs.

スタッ踏む。しています。:)

保存Procs vsコード 前回ディスカッション)

簡単なCRUD事業を単一のデータアクセスポイントいくためにLINQれば安心の構文です。ですが、より複雑なロジックだと思いsprocsりefficiant性能的にそのままT-SQLやより高度な業務です。ものではありませんからチューニング顧問、SQLサーバープロファイラ、デバッグお問い合わせSSMS。

保存の手順この試験をより容易に変更できますクエリーに触れることなくアプリケーションコード.もとlinq、データはその右側のデータです。試験の正確性、データの意味は、アプリケーションで実行さが保存の手順で試験に触れることなく願います。

その結果をまとめると

LinqToSql小型サイトについてプロトタイプを作製。でも時間が短縮のためのプロトタイピング

Sps:ユニバーサル.での微調整を行う私の質問は、必ず確認してくださいActualExecutionPlan/EstimatedExecutionPlan.

Create PROCEDURE userInfoProcedure
    -- Add the parameters for the stored procedure here
    @FirstName varchar,
    @LastName varchar
AS
BEGIN

    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT FirstName  , LastName,Age from UserInfo where FirstName=@FirstName
    and LastName=@FirstName
END
GO

http://www.totaldotnet.com/Article/ShowArticle121_StoreProcBasic.aspx

両LINQ、SQLしています。ともに不利益および利点があります。

時には複雑なデータの検索に必要がある場合があります収納procs.ありまたその他の人は使用管理,Sqlサーバー管理。

Linq to Entitiesは高速CRUD。

確認することで作ることができるアプリだけを使用します。やミキシングすることが出来ます。全ての方法で購入できます。がSQL保procsませんからはどんどん遠ざかっていくお楽しみいただきました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top