я прочитал этот вопрос здесь:LINQtoSQL Пользовательский конструктор с частичным классом?
Is there a way to override the empty constructor in a class generated by LINQtoSQL?
Обычно мой конструктор будет выглядеть так:
public User(String username, String password, String email, DateTime birthday, Char gender)
{
this.Id = Guid.NewGuid();
this.DateCreated = this.DateModified = DateTime.Now;
this.Username = username;
this.Password = password;
this.Email = email;
this.Birthday = birthday;
this.Gender = gender;
}
Однако, как прочитал в этом вопросе, вы хотите использовать частичный метод OnCreated() вместо того, чтобы присваивать значения и не перезаписывать конструктор по умолчанию. Хорошо, так что я получил это:
partial void OnCreated()
{
this.Id = Guid.NewGuid();
this.DateCreated = this.DateModified = DateTime.Now;
this.Username = username;
this.Password = password;
this.Email = email;
this.Birthday = birthday;
this.Gender = gender;
}
Однако, это дает мне две ошибки:
Partial Methods must be declared private.
Partial Methods must have empty method bodies.
Alright я изменить его Private Sub OnCreated()
удалить оба этих ошибок. Тем не менее, я все еще придерживаюсь ... как я могу передать его значения, как с обычным пользовательским конструктором? Также я делаю это в VB (преобразовал его, поскольку я знаю, что большинство знает/предпочитаю C#), так что это повлияет на это?
Ah okay Я не думал об этом User.New(), я просто пытался создать свой собственный конструктор, но потом, когда я попытался сохранить этот объект, он потерпел неудачу, потому что он не содержал много вещей, которые автоматически генерировал класс требуется конструктор по умолчанию. Благодаря! – SventoryMang
Я просто хотел добавить, что 'User.New()' не работает, вы получаете следующую ошибку: вызов конструктора действителен только как первый оператор в конструкторе экземпляра. Вместо этого, похоже, работает 'Me.New()' – SventoryMang
Извините - я действительно не очень хорошо знаю VB. Надеюсь, вы добрались до Me.New() довольно быстро. –