EnabledDelete、EnabledUpdate、EnabledInsert のない LinqDataSource がある場合、正常に動作しますが、これらのプロパティをデータ ソースに追加するとすぐにエラーが発生します。
このオブジェクトにはパラメーターなしのコンストラクターが定義されていません。
EnabledDelete、EnabledUpdate、EnabledInsert のない LinqDataSource がある場合、正常に動作しますが、これらのプロパティをデータ ソースに追加するとすぐにエラーが発生します。
このオブジェクトにはパラメーターなしのコンストラクターが定義されていません。
これは、MSDN フォーラムからの問題の解決に役立つ回答です。
LinqDataSource には、DataContext の既定のコンストラクターが必要です。Web アプリケーションまたは Web サイト プロジェクトで作業している場合、テーブルをデータベースからデザイン サーフェイスにドラッグすると、Linq to SQL デザイナーによって既定のコンストラクターと接続文字列が作成されているはずです。
DataContext を作成し、Web アプリまたは Web サイト プロジェクトからテーブルをデザイン サーフェイスにドラッグしましたか? 生成された Lib.NorthwindDataContext クラスを開き、既定のコンストラクターがあるかどうかを確認します。
本当に必要な場合は、ContextCreating イベントを処理して独自のコンテキスト インスタンスを提供することにより、既定のコンストラクターなしで LinqDataSource を使用することもできます。
エラーが示すように、クラスにパラメーターなしのコンストラクターを提供する必要があります。
public class MyClass
{
public MyClass()
{
// This is the parameterless constructor
}
// rest of the class members goes here.
}
クラスのインスタンスを自動的に作成する必要がある場合、システムはパラメーターなしのコンストラクターを必要とします。他のコンストラクターのパラメーターの意味を判断できないため、このコンストラクターに依存します。
コンストラクターが何もしなくても機能しますが、クラス プロパティに便利な既定値を提供したい場合があります。