Модификатор доступа для конструктора по умолчанию в сгенерированных классах LINQ2SQL - PullRequest
1 голос
/ 09 июля 2011

Я только начинаю с LINQ2SQL, и у меня есть несколько вопросов.

У меня есть база данных с одной таблицей Customer, я запускаю sqlmetal, и он генерирует класс ORM для меня.

Я бы хотел применить определенные правила в конструкторе Customer, возможно, что-то вроде 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 Customer? Когда это публично, это работает как ожидалось.

1 Ответ

0 голосов
/ 09 июля 2011

LinqToSql генерирует частичные классы, так что вы можете использовать это.Также не редактируйте сгенерированные файлы.Вы потеряете все изменения после обновления модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...