3

多くの場合、同じ構造 (同じ列名、型、順序) のデータセットを返すテーブル値関数のグループがあります。

関数を Linq2Sql デザイナーにドラッグすると、デザイナーは関数ごとに新しい匿名の結果の型を作成し、関数は結果に関して互換性がなくなります。

関数の結果の型が同じであることを設計者に伝えるには、関数を既存の Linq2Sql クラスにドラッグする必要があります。

それは問題ありませんが、毎回手動でクラスを作成する必要があります (デザイナー領域に新しいテーブルを挿入し、Insert何度も押して列を挿入し、列名、クライアント側のデータ型、およびサーバー側のデータ型を入力します)。多くの列と多くの関数がある場合、これは非常に時間がかかる可能性があります。

テーブル値関数を見てエンティティ (テーブル クラス) を自動的に作成するようにデザイナーに指示する方法はありますか?

私の現在の回避策は次のとおりです。

  • サーバー上にビューを作成します。

    create view dbo.stupid_linq as select * from dbo.FunctionIWant(bogus_params);
    
  • そのビューをデザイナーにドラッグすると、エンティティが作成されます。

  • を削除して、データベースからエンティティのリンクを解除しますSource

  • エンティティの名前を変更します。

  • サーバー上のビューを削除します。

  • テーブル値関数をエンティティにドラッグします。

4

0 に答える 0