この簡素化 SQL Serverのクエリを見て:あなたは私がすべてのreturnningよ見ることができるようにDapperは、右の `splitOn`を使っても、エンティティを埋めませんか?
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
)
:私はSPを実行するには、この部分的に取り組んコードを使用してい
set @userid2=...
SELECT *,
SPLIT = '',
userid2 = @userid2
FROM Comments c
JOIN Users u
ON ...
列は両方ともComments
とUsers
プラスいくつかint
値です。
私はint
の値を返すことができないことを知っています。エンティティを返す必要があります。なぜ私はint
値を保持するために、このダミーのクラスを作成しましただ
:
public class SqlInt
{
public int MyIntValue { get; set; }
}
をそして、あなたが見ることができるように、それは一般的なタイプの一部です:したがって、基本的
c.QueryAsync<Comment, User, SqlInt, CommentWithSenderAndUserId2>
I Comment
、User
、SqlInt
と入れてください。CommentWithSenderAndUserId2
So問題はどこだ ?私は、スプリッタの列を追加する必要があることを
私のダミークラスのint型の値が満たされることは決してありませんし、それは常に0
です(他のエンティティがうまく埋め)
I did read this post(私はSPで行ったように)以下のような:
SELECT *,
SPLIT = '', <----------- Here
userid2 = @userid2
質問
私は何が間違っているのですか?myIntの値はどのようにして埋められますか?