タイトルがベストと言われていない場合は、ごめんなさい。リポジトリは、必要なすべてのパラメータがメソッドに渡されることを確認する必要がありますか?
私のUserRepositoryには、新しいUserを作成するメソッドがあります。私の妥当性検査は、ユーザーを作成するために必要なすべてのフィールドが入力されていることを確認するためにチェックする必要があります:ユーザー名、パスワード、電子メール、作成済み。いずれかの値がNULLの場合、挿入によってエラーがスローされます。
public class UserRepository : IRepository<User>
{
public DbConnection Connection { get; set; }
public UserRepository(DbConnection connection)
{
this.Connection = connection;
}
public void Create(User user)
{
string sql = "INSERT INTO [dbo].[User] (Username, Password, Email, Created) VALUES (@Username, @Password, @Email, @Created)";
using (DbCommand command = new SqlCommand())
{
command.Connection = this.Connection;
command.CommandText = sql;
command.Parameters.Add(new SqlParameter("@Username", user.Username));
command.Parameters.Add(new SqlParameter("@Password", user.Password));
command.Parameters.Add(new SqlParameter("@Email", user.Email));
command.Parameters.Add(new SqlParameter("@Created", user.Created));
command.ExecuteScalar();
}
}
}
私の作成メソッドは実際に値をここでチェックすべきですか?私はここで検証するべきではないと感じていますが、私は分離のための適切な場所がわかりません。
本質的には、(null、空の文字列または正規表現)を検証するために私のサービスをチェックインし、私の作成メソッドで引き続き引数のヌル値をチェックするでしょうか? – Dietpixel
はいリポジトリのcreateメソッドはnull入力のみをチェックします。デバッグを簡単にするだけです。 –