मैं FluentNhibernate के साथ एक साधारण .NET प्रोजेक्ट शुरू कर रहा हूं।
मैं कुछ उदाहरण मैं इंटरनेट पर मिल गया है का पालन किया है और यह समझ काफी आसान लगता है।
मैंने महसूस किया है कि अगर मैं FluentNhibernate मेरी DB स्कीमा (SQL सर्वर 2000) यह मेरे तार मॉडल संपत्तियों के लिए NVARCHAR क्षेत्रों उत्पन्न बनाने दें।FluentNHibernate और VARCHAR कॉलम
किसी कि मैं एक सम्मेलन प्रकार बदलने के लिए जोड़ सकते हैं का सुझाव दिया।
कोड के इस बिट काम करता है महान:
public class AnsiStringConvention : IPropertyConvention
{
private static Type stringType = typeof(string);
public void Apply(FluentNHibernate.Conventions.Instances.IPropertyInstance instance)
{
if (instance.Property.PropertyType == stringType)
{
instance.CustomType("AnsiString");
}
}
}
अब मेरी डीबी क्षेत्रों, VARCHAR हैं के रूप में मैं उम्मीद थी।
मैं अपने वर्ग में कोई घटक जोड़ने के लिए, DDD पैटर्न मैं एक अलग वर्ग में पता रख दिया और मेरी ग्राहक वर्ग में जोड़ दिया है निम्नलिखित की जरूरत है।
मैं पते के लिए एक अलग मैपिंग फ़ाइल बना लिया है:
public class AddressMap : ComponentMap<Address>
{
public AddressMap()
{
Map(x => x.Number);
Map(x => x.Street)
.Length(100);
Map(x => x.City)
.Length(50);
Map(x => x.PostCode)
.Length(5);
}
}
अब, सभी मेरे ग्राहक तालिका के क्षेत्र VARCHAR लेकिन पता के क्षेत्र (सड़क, शहर और डाक कोड) घटक अभी भी रूप में बनाया जाता हैं NVARCHAR।
जाहिर है वहाँ Fluent-Nhibernate में एक बग है: -s – LeftyX