arasındaki fark nedir? Yapılandırmayla ilgili sözleşmeyi vurgulayan ve NHibernate ConventionModelMapper
'un nasıl çalıştığını anlamaya çalışan Sharp Architecture Lite ile uğraşıyorum. Özellikle, & IsEntity yöntemler aşağıda IsRootEntity arasındaki farkı değil (btw, Entity
soyut bir sınıf keskin Arch ile birlikte gösterir): I IsEntity
yöntem NHibernate bildirmek için kullanılır bu toplamakNHibernate ConventionModelMapper; IsRootEntity & IsEntity
internal static class Conventions
{
public static void WithConventions(this ConventionModelMapper mapper, Configuration configuration) {
Type baseEntityType = typeof(Entity);
mapper.IsEntity((type, declared) => IsEntity(type));
mapper.IsRootEntity((type, declared) => baseEntityType.Equals(type.BaseType));
public static bool IsEntity(Type type) {
return typeof(Entity).IsAssignableFrom(type)
&& typeof(Entity) != type
&& !type.IsInterface;
}
}
olan sınıflar, DB'ye eşleme/kalıcılık için uygundur. Ancak, ben hayatımın için IsRootEntity
yönteminin ne yaptığını anlayamıyorum. ConventionModelMapper
ile ilgili dokümantasyon oldukça seyrek. Davayı ele alırsak
Sizin durumunuz için, IsEntity() A ve B için true olarak döndürülürken, IsRootEntity yalnızca B için geçerli olmalıdır. IsRoot Varlık(), bir IsEntity() alt kümesi olmalı ve yalnızca sınıf mirasının eşlenmesini kontrol etmek için kullanılır. Örneğin, IsRootEntity'yi hem A hem de B için true olarak ayarlarsanız, tüm özelliklerini iki ayrı sınıf olarak eşler. – dotjoe