Wie Moq Entity Framework SqlQuery aufruft

Ich war in der Lage zu verspottenDbSet 's von Entity Framework mit Moq mit diesemVerknüpfun.

Allerdings würde ich jetzt gerne wissen, wie ich den Aufruf von SqlQuery verspotten könnte. Ich bin mir nicht sicher, ob dies möglich ist oder wie es sich darauf stützt, dass der verspottete Datenbankkontext weiß, wie "Abfrage" aufgerufen wird.

Below ist, was ich versuche zu verspotten.

var myObjects = DbContext.Database
    .SqlQuery<MyObject>("exec [dbo].[my_sproc] {0}", "some_value")
    .ToList();

Ich habe momentan noch nichts ausprobiert, da ich nicht wusste, wie ich dieses Beispiel verspotten soll.

ie Verspottung desDbSet ist unten und um es noch einmal zu wiederholen, kann ich die Rückgabe eines @ korrekt verspottDbSet vonMyObject ist, aber jetzt versuche ich, eine SqlQuery zu verspotten, die eine Liste von @ zurückgiMyObject 's.

var dbContext = new Mock<MyDbContext>();
dbContext.Setup(m => m.MyObjects).Returns(mockObjects.Object);

dbContext.Setup(m => m.Database.SqlQuery... something along these lines

Antworten auf die Frage(4)

Ihre Antwort auf die Frage