我有2个实体:Empresa
和FormaPagamento
这2个实体包含HasManyToMany关系现在我想将对象FormaPagamento
删除到Empresa
但我不能这样做。
我怎么能这样做?
映射
public class EmpresaMap : ClassMap<Empresa> {
public EmpresaMap() {
Table("EMPRESA");
Id(e => e.id).GeneratedBy.Native();
Map(e => e.razaoSocial).Not.Nullable().Length(255);
Map(e => e.nomeFantasia).Length(255);
Map(e => e.cnpj).Not.Nullable().Length(18); //22.222.222/0001-00
Map(e => e.inscEstadual).Length(255);
Map(e => e.telefone).Not.Nullable().Length(14); //(17)98156-8355
Map(e => e.isAberta);
Map(e => e.imagem);
//embeddable
Component(e => e.endereco, e => {
e.Map(c => c.endereco);
e.Map(c => c.numero).CustomType<int>();
e.Map(c => c.bairro);
e.Map(c => c.complemento);
e.Map(c => c.cidade);
e.Map(c => c.cep);
e.Map(c => c.uf).CustomType<GenericEnumMapper<EstadosBrasil>>();
});
References<Usuario>(e => e.usuario).Column("usuario_id");
HasManyToMany<FormaPagamento>(e => e.formasPagto)
.Table("empresa_formaspagto")
.ParentKeyColumn("empresa_id")
.ChildKeyColumn("formapagto_id")
.Cascade
.SaveUpdate();
}
}
public class FormaPagamentoMap : ClassMap<FormaPagamento> {
public FormaPagamentoMap(){
Table("FORMAPAGAMENTO");
Id(fp => fp.id).GeneratedBy.Native();
Map(fp => fp.descricao).Not.Nullable().Unique().Length(50);
HasManyToMany<Empresa>(fp => fp.empresas)
.Table("empresa_formaspagto")
.ParentKeyColumn("formapagto_id")
.ChildKeyColumn("empresa_id")
.Inverse();
}
}
尝试将FormaPagamento
删除到Empresa
/// <summary>
/// Delete formapagamento into empresa
/// </summary>
/// <param name="idEmp">ID empresa</param>
/// <param name="idFPG">ID formapagamento</param>
/// <returns>JSON result</returns>
public JsonResult deleteFormaPagto(long idEmp, long idFPG){
try{
Empresa empresa = dao.findObject(idEmp);
FormaPagamento fp = fpDAO.findObject(idFPG);
Boolean isDeleted = fpDAO.delete(fp);
if (isDeleted){
jsonResposta.Add("status", "1");
jsonResposta.Add("msg", "Forma de pagamento removida com sucesso.");
}else{
jsonResposta.Add("status", "0");
jsonResposta.Add("msg", "Erro tentando remover forma de pagamento.");
}
}catch (Exception e){
jsonResposta.Add("status", "0");
jsonResposta.Add("msg", e.Message);
}
return Json(jsonResposta);
}
答案 0 :(得分:0)
解决了这个问题。我只删除了集合中的对象FormaPagamento并进行了更新。
我做了。
/// <summary>
/// Delete formapagamento into empresa
/// </summary>
/// <param name="idEmp">ID empresa</param>
/// <param name="idFPG">ID formapagamento</param>
/// <returns>JSON result</returns>
public JsonResult deleteFormaPagto(long idEmp, long idFPG){
try{
Empresa empresa = dao.findObject(idEmp);
FormaPagamento fp = empresa.formasPagto.SingleOrDefault(fpg => fpg.id == idFPG);
empresa.formasPagto.Remove(fp);
Boolean isDeleted = dao.update(empresa);
if (isDeleted){
jsonResposta.Add("status", "1");
jsonResposta.Add("msg", "Forma de pagamento removida com sucesso.");
}else{
jsonResposta.Add("status", "0");
jsonResposta.Add("msg", "Erro tentando remover forma de pagamento.");
}
}catch (Exception e){
jsonResposta.Add("status", "0");
jsonResposta.Add("msg", e.Message);
}
return Json(jsonResposta);
}