2015-12-10 53 views
0

有一種方法可以用Database.SqlQuery返回創建的新對象嗎?從Database.SqlQuery返回一個對象

使用LINQ我做這種方式:

Category category 
db.Categories.Add(category); 
db.SaveChanges(); 
return category; 

現在類是返回與新的ID創建的新類別的對象。如何使用SqlQuery

return db.Database.SqlQuery<Category>("INSERT INTO " + categoryTable + " (title,description) VALUES ({0},{1}) ", category.title, category.description); 

它返回一個空數組,但我想返回使用新ID創建的新類別。

謝謝。

+0

您也可以在執行LINQ之前放置:'db.Database.Log = Debug.WriteLine;'並查看它生成的內容。 –

+0

爲什麼使用SqlQuery? Linq應該是可能的。請看這裏:http://stackoverflow.com/questions/788320/how-can-i-get-primary-key-value-when-i-insert-a-new-record –

+0

因爲我沒有找到與LINQ的方式使用動態表。例如:categoryTable。我想避免使用如下條件:如果,案例等 – user708683

回答

1

我猜你需要這個,因爲Category有一個自動編號Id屬性的某種。我自己沒有測試過,但也許你可以通過使用插入語句的output clause來得到它。例如

return db.Database.SqlQuery<Category>("INSERT INTO " + categoryTable + " (title,description) OUTPUT inserted.id, inserted.title, inserted.description VALUES ({0},{1}) ", category.title, category.description); 
+0

這正是我需要的!謝謝 :) – user708683