اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
دو دقیقه
با کمک Fluent NHibernate میتوان نگاشتها را به دو صورت خودکار و یا دستی تعریف کرد. در حالت خودکار، روابط بین کلاسها بررسی شده و بدون نیاز به تعریف هیچگونه ویژگی (attribute) خاصی بر روی فیلدها، امکان تشخیص خودکار حالتهای کلید خارجی، روابط یک به چند، چند به چند و امثال آن وجود دارد. یا اگر نیاز باشد تا اسکریپت تولیدی جهت به روز رسانی بانک اطلاعاتی، طول خاصی را به فیلدی اعمال کند میتوان از ویژگیهای NHibernate validator استفاده کرد؛ مانند تعریف طول و نال نبودن یک فیلد که علاوه بر بکارگیری اطلاعات آن در حین تعیین اعتبار ورودی دریافتی، بر روی نحوهی به روز رسانی بانک اطلاعاتی هم تاثیر گذار است:
public class Product
{
public virtual int Id { set; get; }
[Length(120)]
[NotNullNotEmpty]
public virtual string Name { get; set; }
public virtual decimal UnitPrice { get; set; }
}
public class ProductCustomMappings : IAutoMappingOverride<Product>
{
public void Override(AutoMapping<Product> mapping)
{
mapping.Id(u => u.Id).GeneratedBy.Identity(); //ضروری است
mapping.Map(p => p.Name).Unique();
}
}