Глядя на этот упрощенный запрос SQL Server:
set @userid2=...
SELECT *,
SPLIT = '',
userid2 = @userid2
FROM Comments c
JOIN Users u
ON ...
Я использую этот частично рабочий код для выполнения SP:
await c.QueryAsync<Comment, User, SqlInt, CommentWithSenderAndUserId2>(@"insertCommentByImageId",
(message1, user, myint) => new CommentWithSenderAndUserId2
{
User = user,
Comment = message1,
UserId2 = myint.MyIntValue
},
new {imageid = imageId, userid1 = userid1, comment = comment}, //parms
splitOn: "UserID,split", //splits
commandType: CommandType.StoredProcedure //command type
)
Как видите, я возвращаю все столбцы как из Comments
, так и из Users
ПЛЮС некоторое значение int
.
Ну, я знаю, что я не могу просто так вернуть значение int
, мне нужно вернуть сущность.
Вот почему я создал этот фиктивный класс для хранения значения int
:
public class SqlInt
{
public int MyIntValue { get; set; }
}
И, как вы можете видеть, это часть универсальных типов:
c.QueryAsync<Comment, User, SqlInt, CommentWithSenderAndUserId2>
Так что в основном я беру Comment
, User
, SqlInt
и помещаю все это в CommentWithSenderAndUserId2
Так в чем проблема?
Значение int моего фиктивного класса никогда не заполняется, и оно всегда равно 0
(другие объекты заполняются просто отлично)
Я прочитал этот пост (как и в своем SP), что я должен добавить столбец-разделитель, например:
SELECT *,
SPLIT = '', <----------- Here
userid2 = @userid2
Вопрос
Что я делаю неправильно и как мне заполнить значение myInt?