我使用Simple.Data作爲我的Micro-ORM,並且我想實現某些可能或不可能的事情。 我想做一個刪除在其中一列與變量列表匹配的表上,因此SQL的實際效果如下:從表中刪除列「在」範圍內 - Simple.Data
DELETE FROM [Albums] WHERE Genre IN ("Rock", "Pop")
這可能嗎?我已經嘗試了一些東西,比如:
db.Albums.DeleteByGenre(new[] { "Rock", "Pop" });
db.Albums.DeleteAll(db.Albums.Genre == new[] { "Rock", "Pop" });
var genres = new List<string> { "Rock", "Pop" }
db.Albums.DeleteAll(db.Albums.Genre == genres);
哪個不跑,我看不出有什麼生成的查詢時,運行SQL配置文件。開始認爲唯一的選擇是循環播放一系列名爲DeleteBy
的流派集合?
編輯:
我遇到的問題不是Simple.Data問題。以上會的工作,我用:
var genreList = new List<string> { "Rock", "Pop" };
db.Albums.DeleteByGenre(genreList);
Altenatively你可以使用:
db.Albums.DeleteAll(db.Albums.Genre == genreList);
我更喜歡個人的第一個選項:)
不確定它是否支持Simple.Data,但邏輯等效於'IN(「Rock」,「Pop」)'是db.Albums.DeleteAll(類型.Contains(db.Albums.Genre))' – 2014-12-03 13:43:35
查看我對Stefan的評論,它也適用於此建議。謝謝:) – MartinM 2014-12-03 14:16:12
更新了我的答案。似乎我有另一個問題 – MartinM 2014-12-03 15:18:26