ここからLINQ2SQLで始まり、いくつか質問があります。LINQ2SQL生成クラスのデフォルトコンストラクタのアクセス修飾子
私はdbテーブルを1つ持っています。顧客は、私はsqlmetalを実行し、私のORMクラスを生成します。
お客様のコンストラクターに特定のルールを適用したいと思います。 firstName、lastNameメンバーのメンバーを提供する必要があります。
私はsqlmetalで新しいコンストラクタを作成したが にCustomerクラスを生成した2つのパラメータのfirstName、secondNameを取った後、私はこの アセンブリを消費し何にそれを公開したくないよう内部ように、デフォルトのパラメーターなし コンストラクタをマーク。
パブリックから内部へのパラメータのないコンストラクタの新しい保護レベルのため、SubmitChanges()を試してみると、私のコードが文句を言うようになりました。
List<Customer> customerList = new List<Customer>();
customerList = dbInstance.Customer.ToList();
Customer customerToDelete = customerList.Where(c => c.Customer_id == 100).First();
dbInstance.Customer.DeleteOnSubmit(customerToDelete);
dbInstance.SubmitChanges(); <-- error thrown
「このオブジェクトのために定義されていませんパラメータなしのコンストラクタ」
なぜアクセス修飾子は、お客様のORMクラスのデフォルトコンストラクタのパブリックでなければなりませんか?それが公開されると、これは期待どおりに動作します。
興味深いことに、オブジェクトを実現する*必要がある場合、私は驚かないでしょう。それらを提出する必要があるのは奇妙です。 –