1

SQLサーバーでUDFを作成します。fnCompanyDetailsという名前を付けましょう。いくつかの共同テーブルから会社に関するいくつかの情報を選択します。次に、この関数をVBプロジェクトの新しい.dbmlにドラッグアンドドロップします。LINQで使いたいです。このようなSmth:

Dim company = (From c In d.fnCompanyDetails(sap)

                    Select New With {

        .Sap = c.txtSAP,

        .CompanyName1 = c.txtCompanyName1, _

        .CompanyName2 = c.txtCompanyName2, _

        })

このクエリの結果をフォームでユーザーに表示します。一部のフィールドが変更された場合、データベースに変更を送信したいのですが、UDFからこのように検索している場合、これは可能ですか?ありがとう

4

1 に答える 1

1

いいえ、残念ながら簡単な方法ではできません。Linq-to-sql はカスタム型への読み取りをサポートしていますが、テーブルに正確に対応するエンティティ型による更新のみをサポートしています。

通常、エンティティ オブジェクトを更新する目的で読み取る場合は、常に純粋なエンティティ オブジェクトを読み取ることが最善の方法です。

もう 1 つの解決策は、udf から返されたデータからエンティティ オブジェクトを作成し、それらのエンティティをコンテキストに添付することです。エンティティを最初に元の状態でアタッチし、アタッチに変更を加えると、変更追跡の問題が発生せずに済むはずです。

于 2012-03-07T09:31:57.977 に答える