删除与另一个linq实体表相关的记录

时间:2017-07-12 00:34:42

标签: c# sql-server entity-framework

我正在创建一个3层程序,当我删除一条记录时,它会抛出一个错误,因为该记录与另一个表(外键)有关。我想验证如果记录与另一个表相关,我将显示一条消息,该消息无法删除记录,当我收到错误时xq或程序停止工作的异常。或者做类似的事情。

如果(查询> 0){无法删除}

其他{删除}

查询将如何在linq实体中以及在哪个层中具有数据层,业务逻辑和表示...

1 个答案:

答案 0 :(得分:0)

在数据层中:类存储库提供程序

val connectionProperties = new java.util.Properties

connectionProperties.setProperty("driver", "com.teradata.jdbc.TeraDriver")
connectionProperties.setProperty("password","PASSWORD")
connectionProperties.setProperty("TMODE","TERA")
connectionProperties.setProperty("TYPE","FASTLOAD")
df.write.mode("append").jdbc("jdbc:teradata://10.196.51.107/user=USERNAME","DBname.emp_table", connectionProperties)

在业务逻辑层:类管理器提供程序:

public void Eliminar(int id) {
    var resp = BaseDatos.Proveedor.Where(x => x.Medicamento.Any());
    var proveedoresParaEliminar = BaseDatos.Proveedor.Where(p => 
    p.IdProveedor == id);

    foreach (var item in proveedoresParaEliminar) {             
        BaseDatos.Proveedor.Remove(item);               
    }
    BaseDatos.SaveChanges();
}

在图层演示中:

 public void Eliminar(int id) {      
     repo.Eliminar(id);
 }