In den meisten meiner Projekte verwende ich nHibernate + Fluent-Mapping und vor kurzem habe ich angefangen, mit Dapper zu spielen, um zu sehen, ob ich Leseoperationen darauf verschieben kann.Mapping private Attribute von Domain-Entities mit Dapper dot net
Ich folge DDD-Ansatz, so dass meine Domain-Entitäten keine öffentlichen Setter haben. Zum Beispiel:
public class User
{
private int _id;
private string _name;
private IList<Car> _carList;
protected User(){} // Fluent Mapping
public User(string id, string name)
{
// validation
// ...
_id = id;
_name = name;
}
public int Id{ get {return _id;} }
public string Name { get {return _name;} }
public IList<Car> CarList { get {return _carList;}}
}
public class Car
{
private int _id;
private string _brand;
protected Car(){} // Fluent Mapping
public Car(string id, string brand)
{
// validation
// ...
_id = id;
_brand= brand;
}
public int Id{ get {return _id;} }
public string Brand { get {return _brand;} }
}
Mit Fluent nHibernate Ich bin in der Lage Mitglieder für die Zuordnung zu offenbaren:
Id(Reveal.Member<User>("_id")).Column("id");
Map(Reveal.Member<User>("_name")).Column("name");
Gibt es eine Möglichkeit, meine Domain-Entitäten mit Dapper abzubilden? Wenn das so ist, wie?
Beachten Sie, dass die IList von der Benutzerklasse ausgesetzt ist, ist ein DDD Geruch wie ein Setter: Sie sollten stattdessen eine IEnumerable , da alle Operationen auf einem [Aggregat] (http://dddcommunity.org/library/) vernon_2011 /) state sollte über [commands] (http://epic.tesio.it/doc/manual/command_query_separation.html) bearbeitet werden. –