dapper查詢返回的DynamicObject不包含所有選定的列

.net calculated-columns dapper orm sql-server

我正在使用dapper.net執行插入,如下所示:

var columns = conn.Query("INSERT INTO MyTable" +
                   "(Col1, Col2, Col3)" +
                   "VALUES (@Col1, @Col2, @Col3)" +
                   "SELECT Id, ComputedColumn FROM MyTable WHERE Id = scope_identity()",
                   myObj).Single();

myObj.Id = columns.Id;
myObj.ComputedValue = columns.ComputedColumn;

查詢成功,但myObj.ComputedValue = columns.ComputedColumn;會拋出異常myObj.ComputedValue = columns.ComputedColumn;'System.Dynamic.DynamicObject' does not contain a definition for 'ComputedColumn'

正如您可能已經收集的那樣,ComputedColumn是表上的計算列,這就是我在插入ID之後返回它的原因。知道為什麼會失敗嗎?

一般承認的答案

想出來 - 我在這張桌子上有一個代替插入的觸發器。觸發器返回Id以便與Entity Framework(我已經切換到dapper)玩得很好。 SELECT Id, ComputedColumn FROM MyTable WHERE Id = scope_identity()實際上甚至沒有返回一行,但是dapper正確加載了觸發器返回的Id。更改了觸發器以返回Id和ComputedColumn,一切都很棒!



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因