Ich mag das Muster, das ich in diesem Blogpost gesehen habe (http://marekblotny.blogspot.com/2009/04/conventions-after-rewrite.html), wo der Autor prüft, ob eine Änderung des Tabellennamens bereits vorgenommen wurde, bevor eine Konvention angewendet wird.10 Fluent NHiberte Änderungen/Konventionen
public bool Accept(IClassMap target)
{
//apply this convention if table wasn't specified with WithTable(..) method
return string.IsNullOrEmpty(target.TableName);
}
Die Konvention Schnittstelle ich bin für eine String-Länge verwendet, ist IProperty:
public class DefaultStringLengthConvention: IPropertyConvention
{
public bool Accept(IProperty property) {
//apply if the string length hasn't been already been specified
return ??; <------ ??
}
public void Apply(IProperty property) {
property.WithLengthOf(50);
}
}
Ich sehe nicht, wo IProperty etwas macht, das mir sagt, wenn die Eigenschaft bereits festgelegt worden ist. Ist das möglich?
TIA, Berryl
Gedanke, der das Geschäft sein könnte; Es macht mir nichts aus, Konventionen für Gruppen von Stringlängen hinzuzufügen, aber viele Fälle sind Einzelfälle, die wirklich von der Klasse gesteuert werden. Wenn also eine String-Länge von EmployeeNumber 6 Zeichen lang sein sollte, ist dies entweder EmployeeNumberStringLengthConvention für das eine Feld oder eine if-Anweisung in DefaultStringLengthConvention. Thx für die schnelle Antwort. – Berryl