私はWPF(Webではない)アプリケーションを実行しています。
3層
EFコードファースト
UI層は論理層を参照し、論理層はデータ層を参照します。
現在、データ層に例外があり、例外によって生成されたテキストに基づいてメッセージボックスを表示する必要があります。
ただし、データ層にWindowsBase、PresentationCore、およびPresentationFrameworkへの参照を追加したくありません。
データ層からUI層にテキストを送信し、メッセージボックスを表示するにはどうすればよいですか?
TIA
関連コード:
UI層で
public void guardar(UserControlCliente UCCliente)
{
admin.guardarEntidadCliente(UCCliente.textBoxNombre.Text,
UCCliente.textBoxPrimerApellido.Text,
UCCliente.textBoxSegundoApellido.Text,
"Normal",
DateTime.Parse("01/01/2012"),
DateTime.Parse("02/02/2012"),
"obs 1");
}
private void buttonAgregar_Click(object sender, RoutedEventArgs e)
{
guardar(this);
}
論理層で
public void guardarEntidadCliente(String nombre, String app1, String app2, String tipo,
DateTime fechaReg, DateTime fechaUltCita, String obs)
{
Cliente cliente = new Cliente();
cliente.Nombre = nombre;
cliente.Apellido1 = app1;
cliente.Apellido2 = app2;
cliente.Tipo = tipo;
cliente.FechaRegistro = fechaReg;
cliente.FechaUltimaCita = fechaUltCita;
cliente.Observaciones = obs;
ControlDatos cd = new ControlDatos();
cd.agregarCliente(cliente);
}
データ層で
public void agregarCliente(Cliente cliente)
{
db.Clientes.Add(cliente);
try
{
db.SaveChanges();
}
catch (DbEntityValidationException exc)
{
String mensaje = "";
foreach (var validationErrors in exc.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
mensaje += validationError.ErrorMessage + "\n";
db.Entry(cliente).State = EntityState.Detached;
// MessageBox.Show(mensaje, "Se han encontrado errores", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
コメント行を実行する必要がありますが、UI層で実行します。