1
我試圖執行使用實體框架插入查詢執行插入查詢。如何使用實體框架
我有這樣的事情:
Context.database.ExecuteSqlCommand("Insert into tableName Values({0},{1},{2}", param1, param2, param3)
但這是拋出一個錯誤
不正確的語法附近 '@ P1'
這是什麼 '@ P1'?
我試圖執行使用實體框架插入查詢執行插入查詢。如何使用實體框架
我有這樣的事情:
Context.database.ExecuteSqlCommand("Insert into tableName Values({0},{1},{2}", param1, param2, param3)
但這是拋出一個錯誤
不正確的語法附近 '@ P1'
這是什麼 '@ P1'?
你缺少你的INSERT年底關閉)。
它應該是:
Context.database.ExecuteSqlCommand("Insert into tableName Values({0},{1},{2})", param1, param2, param3)
或者,你可以使用的SqlParameter類:
Context.Database.ExecuteSqlCommand(
"Insert into tableName Values(@id, @firstName, @lastName)",
new SqlParameter("id", id),
new SqlParameter("firstName", firstName),
new SqlParameter("lastName", lastName)
);
除了您爲什麼要寫SQL明顯的問題,看來你缺少一個右括號,之後第三個{2}
參數:
Contex.database.ExecuteSQLCOmmand(@"Insert into tableName Values({0},{1},{2})",param1,param2,param3);
那麼它也是一個很好的做法是指定列名,如下所示:
Contex.database.ExecuteSQLCOmmand(@"Insert into tableName (col1, col2, col3) Values({0},{1},{2})",param1,param2,param3);
爲什麼要在實體框架中編寫SQL來執行插入操作? – DLeh
@DLeh是的,我同意,我會使用SQL命令只執行存儲過程 –
我需要做一些動態的插入到表,其中目標表可能會改變。他們需要實體框架。他們說要使用動態插入查詢 –