Je lis cette question ici:LINQtoSQL Custom Constructor désactivé Classe partielle?
Is there a way to override the empty constructor in a class generated by LINQtoSQL?
Généralement mon constructeur ressemblerait à ceci:
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;
}
Cependant, comme lu dans cette question, vous voulez utiliser la méthode partielle OnCreated() au lieu de affecter des valeurs et ne pas écraser le constructeur par défaut. Ok, alors je suis ceci:
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;
}
Cependant, cela me donne deux erreurs:
Partial Methods must be declared private.
Partial Methods must have empty method bodies.
bien Je change à Private Sub OnCreated()
de supprimer ces deux erreurs. Cependant, je suis toujours coincé avec ... comment puis-je lui transmettre des valeurs comme je le ferais avec un constructeur personnalisé normal? Aussi je fais cela en VB (converti puisque je connais le plus/préfère C#), donc cela aurait-il un effet sur ça?
Ah okay je n'ai pas pensé à ce User.New(), j'ai essayé juste de faire mon propre constructeur mais quand j'ai essayé de sauver cet objet il a échoué parce qu'il ne contenait pas beaucoup de choses que la classe générée automatiquement besoins que le constructeur par défaut fournit. Merci! – SventoryMang
Je voulais juste ajouter que 'User.New()' ne fonctionne pas, vous obtenez l'erreur suivante: L'appel du constructeur n'est valide que comme la première instruction dans un constructeur d'instance'. Au lieu de cela, ce qui semble fonctionner est 'Me.New()' – SventoryMang
Désolé - je ne connais pas très bien VB. J'espère que vous êtes arrivé à Me.New() assez rapidement. –