我已經從MySQL數據庫生成了EF4模型,並且包含了StoredProcedures和Tables。如何使用EntityFramework調用存儲過程?
我知道如何定期對EF進行instert/update/fetch/delete操作,但是找不到我的StoredProcedures。
這正是我所期待的:
using (Entities context = new Entities())
{
context.MyStoreadProcedure(Parameters);
}
編輯1:
這是如何看起來不EF:
sqlStr = "CALL updateGame(?,?,?,?,?,?,?)";
commandObj = new OdbcCommand(sqlStr, mainConnection);
commandObj.Parameters.Add("@id,", OdbcType.Int).Value = inGame.id;
commandObj.Parameters.Add("@name", OdbcType.VarChar, 255).Value = inGame.name;
commandObj.Parameters.Add("@description", OdbcType.Text).Value = ""; //inGame.description;
commandObj.Parameters.Add("@yearPublished", OdbcType.DateTime).Value = inGame.yearPublished;
commandObj.Parameters.Add("@minPlayers", OdbcType.Int).Value = inGame.minPlayers;
commandObj.Parameters.Add("@maxPlayers", OdbcType.Int).Value = inGame.maxPlayers;
commandObj.Parameters.Add("@playingTime", OdbcType.VarChar, 127).Value = inGame.playingTime;
return Convert.ToInt32(executeScaler(commandObj));
PS。如果需要的話我可以改變EF版本
編輯1:
CREATE DEFINER=`106228`@`%` PROCEDURE `updateGame`(
inId INT,
inName VARCHAR(255),
inDescription TEXT,
inYearPublished DATETIME,
inMinPlayers INT,
inMaxPlayers INT,
inPlayingTime VARCHAR(127)
)
我不明白,爲什麼我應該對SP名稱進行硬編碼?我在生成模型時添加了它們?應該不只是在Context對象上的某個地方作爲方法? – Ivy