使用Visual Studio 2015社区,EF 6,ASP.NET MVC 5,Oracle,并使用数据库优先方法。
我按照此处的说明(http://www.entityframeworktutorial.net/EntityFramework5/CRUD-using-stored-procedures.aspx)使用存储过程进行CUD操作。无论我做什么,我都会在调用SaveChanges
时遇到同样的错误。
ORA-06550:第1行,第8栏:
PLS-00201:标识符' XXAAI_AFCD.XXAAI_MISSION_Insert'必须申报 ORA-06550:第1行,第8栏:
PL / SQL:忽略语句
插入操作的那个。更新和删除时会抛出类似的错误。此外,我称之为存储过程并不重要,它会为XXAAI_AFCD.XXAAI_MISSION_Insert
引发相同的错误。我已经测试了存储过程,但它确实有效。
以下是代码:
PROCEDURE XXAAI_MISSION_Insert (P_MISSION_NUMBER IN XXAAI_AFCD.XXAAI_MISSION.MIS_MISSION_NUMBER%TYPE,
P_MISSION_TAG IN XXAAI_AFCD.XXAAI_MISSION.MIS_MISSION_TAG%TYPE,
P_MISSION_DATE IN XXAAI_AFCD.XXAAI_MISSION.MIS_MISSION_DATE%TYPE,
P_UPLOAD_DATE IN XXAAI_AFCD.XXAAI_MISSION.MIS_UPLOAD_DATE%TYPE,
P_NOTES IN XXAAI_AFCD.XXAAI_MISSION.MIS_NOTES%TYPE,
P_ACTIVE IN XXAAI_AFCD.XXAAI_MISSION.MIS_ACTIVE%TYPE,
P_USER_ID IN XXAAI_AFCD.XXAAI_MISSION.ADDED_BY%TYPE)
IS
BEGIN
INSERT INTO XXAAI_AFCD.XXAAI_MISSION (MIS_MISSION_ID
,MIS_MISSION_NUMBER
,MIS_MISSION_TAG
,MIS_MISSION_DATE
,MIS_UPLOAD_DATE
,MIS_NOTES
,MIS_ACTIVE
,DATE_ADDED
,ADDED_BY
,DATE_MODIFIED
,MODIFIED_BY)
VALUES (XXAAI_AFCD.XXAAI_MISSION_SEQ.NEXTVAL
,P_MISSION_NUMBER
,P_MISSION_TAG
,P_MISSION_DATE
,P_UPLOAD_DATE
,P_NOTES
,P_ACTIVE
,SYSDATE
,P_USER_ID
,SYSDATE
,P_USER_ID
);
END XXAAI_MISSION_Insert;
我尝试使用软件包重命名存储过程,并使用独立过程。我还右键单击Visual Studio中的存储过程并选择权限并为所有用户Execute
。我还使用身份验证标识DEFINER
和CURRENT_USER
创建了存储过程。这一切最终都会给出完全相同的错误。
以下是Create
方法中的控制器代码。
db.XXAAI_MISSION.Add(xXAAI_MISSION);
await db.SaveChangesAsync();
错误发生在SaveChangesAsync()
上。
我的模型OnModelCreating
方法中也有以下代码。
modelBuilder.Entity<XXAAI_MISSION>().MapToStoredProcedures();
在我的model.edmx
文件的“映射详细信息”选项卡中,我为插入操作选择了存储过程并映射了所有字段。我已经尝试了返回并且没有返回值。这里的任何帮助将不胜感激。