2013-05-14 32 views
0

我正在使用Dapper.Rainbow,並且在插入名爲'User'的表時遇到了問題。用Dapper.Rainbow插入表'User'

我可以讓其他表完美工作,但是當試圖插入Users表時,它會失敗。

我已經使用Sql Query檢查器來確定生成的查詢的表名沒有任何[ ]。一旦我用方括號重新調查查詢,它工作正常。

當我使用Table<User>(this, "[Users]");將私有財產likelyTableName設置爲正確的值([User])。

但是,只要database.Init(dbconn,3);它會將likelyTableName字符串更改爲User

我一直在檢查Dapper-dot-net Github項目,並查看了dapper.rainbow的database.cs源代碼,但由於它的一部分在IL中,所以無法使用。

有沒有辦法讓dapper.rainbow與一個名爲User的表一起工作?

回答

1

對於表(或字段,視圖等)名稱使用保留字是一個壞主意。我認爲這可能會導致你的問題。最好咬一顆子彈,改名,而不是永遠與它戰鬥。

供參考,在這裏是保留字列表(避免):

http://msdn.microsoft.com/en-us/library/ms189822.aspx

+0

我不同意你的觀點,但是已經通過彩虹代碼看起來有點多,我覺得有可能成爲他們代碼中的一個錯誤。我工作的一些高級開發人員說使用方括號是一種很好的做法。而且,如果表格已經存在於數據庫中,Rainbow看起來好像不會在表名稱周圍放置方括號。 – Jastill 2013-05-20 01:22:33