EF中映射Oracle存储过程及调用出现的一些问题

最近的系统开发使用的是Oracle数据库,因为要用到EF来映射,出现了几个问题,因为公司管理的原因,我无法截图并上传出来,只能靠记忆写出大致的方法


1、添加的存储过程没出现:

在VS中更新模型或者新增的时候,如果直接选中存储过程,点击完成,在Model Browser里面并没有出现,用xml方式打开edmx,如果有些已经映射的存储过程,拷贝其中一个映射在edmx中的代码,然后修改相应的名字和参数,放到同级节点位置,保存,这个时候在Model Browser,就出现了。


2、出现调用存储过程,提示参数个数或类型不对:

这个主要是有返回游标参数,有些说在designer代码里面加上这个返回参数,我没试过,而且如果在代码里面改,每次新加一个表或存储过程都新生成代码,导致要手动修改。因为是在类库工程里面使用EF,然后在web工程和控制台工程里面使用,发现报这个错,所以当时直接在控制台工程添加edmx文件映射,并使用,发现没有问题,对比之后,发现直接在控制台的工程里面映射的config文件和在类库映射之后,在web工程或控制台工程的config配置文件不同,把对应的一段存储过程配置拷贝进去就可以了。


3、无法再添加存储过程的时候生成接受类:

可以自己手动添加,然后在添加方法那里选择相应的存储过程,自己手动加的接受类,然后在右击方法,选择mapping,也就是映射到数据表的列,那里设置接受类的属性对应的列名,也就是返回游标那里查出来的列的名称


如果对edmx的xml文件的内容非常熟悉,其实可以直接在里面编写,与界面的操作一样,但是要求比较高,如果一旦熟悉,操作速度可以快很多。

你可能感兴趣的:(C#)