Ich verwende Fluent-NHibernate, um alle Datenpersistenz-Layer zu verwalten, und ich bin insgesamt sehr zufrieden (und dankbar für die NHibernate-Community). Ich plane weiterhin OR-Mapper zu verwenden. Ich habe eine API für die POCOs entwickelt, die gemappt werden. Der Nachteil ist, dass alle Eigenschaften von den UI-Entwicklern sowohl gettable als auch einstellbar sind; Wenn ich das wirklich möchte, dann verstecke ich Eigenschaften aus der nicht-mittleren Entwicklungsstufe und zeige nur die bereitgestellten API-Methoden, um Operationen durchzuführen.Verbergen von Eigenschaften-Settern bei Verwendung eines OR-Mappers
Hat jemand eine gute Strategie dafür?
Allzu einfaches Beispiel:
member.FName = "Julian"; /// Don't do this because it avoids the my checking
member.LName = "King";
member.setName("Julian", "King"); /// Yes - this will throw an error if this person already exist
Was ist der Unterschied zwischen öffentlichen Setter und öffentlichen Operationen? Beide ergeben das gleiche Ergebnis. Vielleicht möchten Sie stattdessen Ihre Typen _immutable_ machen? – MickyD
Mit Operation meinen Sie Methode? Schlägst du Methoden anstelle von Eigenschaften vor? – Juls
Ja. Nein. Es klingt, als ob Sie unveränderliche Typen wollen. In diesem Fall würden Sie alles an einen Konstruktor übergeben. Somit würde es keine Setzer oder Methoden geben, um den Zustand zu ändern. – MickyD