Ich verwende Dapper.Mapper, um Sql-Abfragen direkt auf meine Anwendungsklassen abzubilden. Ich dachte Dapper.Mapper ist nur eine syntaktische Zuckerbeschichtung über Dapper , dem ursprünglichen ORM. Aber ich bin immer noch nicht in der Lage, aufgrund sehr weniger Demos und Beispiele damit anzufangen. Allerdings habe ich das wie auf ihrer git-Seite versucht:
var sql="Select * from Students where Grades>90"'
var conn=new MySqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString);
var studentRecord=conn.Query<Students, TopStudents>(sql);
Und meine POCO-Modelle sind:
//Db table
public class Students
{
public int Id{get;set;}
public string Name{get;set;}
public float Grades{get;set;}
}
public class TopStudents
{
public int Id{get;set;}
public string Name{get;set;}
public string Grades{get;set;}
//...Few more properties
}
Aber ich No Writable Property for TopStudents found in types Students
folgende Ausnahme, No Writable Property for TopStudents found in types Students
Fehle ich etwas? Bitte teilen Sie eine kurze Demo oder ein Tutorial. Es gibt nicht einmal eine richtige Dokumentation, wo ich die Ursache der Ausnahme finden und sie selbst lösen kann. Wie beginne ich mit Dapper.Mapper?
Sehen Sie sich die Dokumentation hier an . Die Beispielabfrage verwendet * und verwendet einen inneren Join, so dass Mitarbeiter- und Abteilungsobjekte zurückgegeben werden. Wenn nur Employee-Objekte zurückgegeben würden, würde der Code wie folgt aussehen:
var sql = @"select * from Employee";
var employee = connection.Query<Employee, Department>(sql);
Anwenden auf Ihren Code:
var sql="Select * from Students where Grades>90"'
var conn=new MySqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString);
var studentRecord=conn.Query<Students>(sql);
Wenn Sie Students
und TopStudents
möchten, ändern Sie sie wie TopStudents
:
var sql="Select * from Students s
INNER JOIN TopStudents ts where s.Id = ts.Id AND s.Grades>90"'
var conn=new MySqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString);
var studentRecord=conn.Query<Students, TopStudents>(sql);