2016-03-06 125 views
0

我有一个c#应用程序使用实体框架6和Mysql数据库。我加入这个存储过程:使用EF6和Mysql数据库存储过程映射

DELIMITER $$ 
CREATE DEFINER=`root`@`localhost` PROCEDURE `ps_reservation`(IN id_compte varchar(128)) 
BEGIN 
    if id_compte is null then 
     SELECT 
      `ajtdev`.`ajt_demande`.`id` AS `id_demande`, 
      `ajtdev`.`ajt_demande`.`date_intervention` AS `date_intervention`, 
      `ajtdev`.`ajt_demande`.`from_time` AS `from_time`, 
      `ajtdev`.`ajt_demande`.`to_time` AS `to_time`, 
      `ajtdev`.`ajt_demande`.`id_begin_place` AS `id_from_place`, 
      `ajtdev`.`ajt_demande`.`id_end_place` AS `id_to_place`, 
      `ajtdev`.`ajt_demande`.`bot` AS `bot`, 
      `ajtdev`.`ajt_client`.`nom` AS `nom_client`, 
      `ajtdev`.`ajt_client`.`prenom` AS `prenom_client`, 
      `ajtdev`.`ajt_coordonne`.`tel` AS `tel_client`, 
      `ajtdev`.`ajt_statut_demande`.`libelle` AS `statut_demande`, 
      `ajtdev`.`ajt_vehicle`.`immarticulation` AS `immarticulation_vehicle`, 
      `ajtdev`.`ajt_vehicle`.`marque` AS `marque_vehicle`, 
      `ajtdev`.`ajt_collaborator`.`id` AS `id_chauffeur`, 
      `ajtdev`.`ajt_collaborator`.`Nom` AS `nom_chauffeur`, 
      `ajtdev`.`ajt_collaborator`.`Prenom` AS `prenom_chauffeur`, 
      `ajtdev`.`ajt_collaborator`.`id_user_fk` AS `id_user` 
     FROM 
      `ajtdev`.`ajt_demande` JOIN `ajtdev`.`ajt_statut_demande` ON (`ajtdev`.`ajt_demande`.`id_statut` = `ajtdev`.`ajt_statut_demande`.`id`) 
      JOIN `ajtdev`.`ajt_client` ON (`ajtdev`.`ajt_demande`.`id_client` = `ajtdev`.`ajt_client`.`id`) 
      JOIN `ajtdev`.`ajt_coordonne` ON (`ajtdev`.`ajt_client`.`id_coordonne` = `ajtdev`.`ajt_coordonne`.`id`) 
      JOIN `ajtdev`.`ajt_ass_veh_col` ON (`ajtdev`.`ajt_demande`.`id_ass_veh_col_fk` = `ajtdev`.`ajt_ass_veh_col`.`id`) 
      JOIN `ajtdev`.`ajt_vehicle` ON (`ajtdev`.`ajt_ass_veh_col`.`veh_id_fk` = `ajtdev`.`ajt_vehicle`.`Id`) 
      JOIN `ajtdev`.`ajt_collaborator` ON (`ajtdev`.`ajt_ass_veh_col`.`col_id_fk` = `ajtdev`.`ajt_collaborator`.`Id`) 
     WHERE 
      ISNULL(`ajtdev`.`ajt_demande`.`deletion_date`) 
      and ISNULL(`ajtdev`.`ajt_collaborator`.`deletion_date`) 
      and ISNULL(`ajtdev`.`ajt_client`.`deletion_date`) 
      and ISNULL(`ajtdev`.`ajt_vehicle`.`deletion_date`); 
    else 
     SELECT 
      `ajtdev`.`ajt_demande`.`id` AS `id_demande`, 
      `ajtdev`.`ajt_demande`.`date_intervention` AS `date_intervention`, 
      `ajtdev`.`ajt_demande`.`from_time` AS `from_time`, 
      `ajtdev`.`ajt_demande`.`to_time` AS `to_time`, 
      `ajtdev`.`ajt_demande`.`id_begin_place` AS `id_from_place`, 
      `ajtdev`.`ajt_demande`.`id_end_place` AS `id_to_place`, 
      `ajtdev`.`ajt_demande`.`bot` AS `bot`, 
      `ajtdev`.`ajt_client`.`nom` AS `nom_client`, 
      `ajtdev`.`ajt_client`.`prenom` AS `prenom_client`, 
      `ajtdev`.`ajt_coordonne`.`tel` AS `tel_client`, 
      `ajtdev`.`ajt_statut_demande`.`libelle` AS `statut_demande`, 
      `ajtdev`.`ajt_vehicle`.`immarticulation` AS `immarticulation_vehicle`, 
      `ajtdev`.`ajt_vehicle`.`marque` AS `marque_vehicle`, 
      `ajtdev`.`ajt_collaborator`.`id` AS `id_chauffeur`, 
      `ajtdev`.`ajt_collaborator`.`Nom` AS `nom_chauffeur`, 
      `ajtdev`.`ajt_collaborator`.`Prenom` AS `prenom_chauffeur`, 
      `ajtdev`.`ajt_collaborator`.`id_user_fk` AS `id_user` 
     FROM 
      `ajtdev`.`ajt_demande` JOIN `ajtdev`.`ajt_statut_demande` ON (`ajtdev`.`ajt_demande`.`id_statut` = `ajtdev`.`ajt_statut_demande`.`id`) 
      JOIN `ajtdev`.`ajt_client` ON (`ajtdev`.`ajt_demande`.`id_client` = `ajtdev`.`ajt_client`.`id`) 
      JOIN `ajtdev`.`ajt_coordonne` ON (`ajtdev`.`ajt_client`.`id_coordonne` = `ajtdev`.`ajt_coordonne`.`id`) 
      JOIN `ajtdev`.`ajt_ass_veh_col` ON (`ajtdev`.`ajt_demande`.`id_ass_veh_col_fk` = `ajtdev`.`ajt_ass_veh_col`.`id`) 
      JOIN `ajtdev`.`ajt_vehicle` ON (`ajtdev`.`ajt_ass_veh_col`.`veh_id_fk` = `ajtdev`.`ajt_vehicle`.`Id`) 
      JOIN `ajtdev`.`ajt_collaborator` ON (`ajtdev`.`ajt_ass_veh_col`.`col_id_fk` = `ajtdev`.`ajt_collaborator`.`Id`) 
     WHERE 
      ISNULL(`ajtdev`.`ajt_demande`.`deletion_date`) 
      and ISNULL(`ajtdev`.`ajt_collaborator`.`deletion_date`) 
      and ISNULL(`ajtdev`.`ajt_client`.`deletion_date`) 
      and ISNULL(`ajtdev`.`ajt_vehicle`.`deletion_date`) 
      and CONVERT(`ajtdev`.`ajt_collaborator`.`id_user_fk` USING UTF8)= id_compte; 
    end if; 

END$$ 
DELIMITER ; 

当我增加了一个新的EF模型,在该方面,我得到这个mappage:

public virtual int ps_reservation(string id_compte) 
{ 
    var id_compteParameter = id_compte != null ? 
     new ObjectParameter("id_compte", id_compte) : 
     new ObjectParameter("id_compte", typeof(string)); 

    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("ps_reservation", id_compteParameter); 
} 

为什么我得到这样的方法签名我不明白:

公共虚拟INT ps_reservation(字符串id_compte)

我的意思是,为什么返回类型是整数!为什么它不是ObjectResult<ps_reservation_Result>

  1. 这个错误的原因是什么?
  2. 我该如何解决?

回答

0

研究

后,我找到了解决办法here

相关问题