Fluent Nhibernate-Schema Generation

Ich Spiele seit etwa mit FluentNhibernate als Teil des S#arp-Architektur. Unten ist ein Beispiel-mapping.

public class EventBaseMap : ClassMap<EventBase>
{
    public EventBaseMap()
    {
        WithTable("Event_Header");
        //NotLazyLoaded(); 

        Id(x => x.Id).WithUnsavedValue(-1).GeneratedBy.Native();

        Map(x => x.Name).WithLengthOf(50).Not.Nullable();
        Map(x => x.Description).WithLengthOf(255);
        Map(x => x.Rating);
        Map(x => x.Price);
        Map(x => x.PhoneNumber).WithLengthOf(20).Not.Nullable();
        Map(x => x.EmailAddress);
        Map(x => x.Website);
        Map(x => x.State).Not.Nullable().CustomSqlTypeIs("INT");

        Component(x => x.Ages, m =>
         {
             m.Map(x => x.From).TheColumnNameIs("AgeFrom");
             m.Map(x => x.To).TheColumnNameIs("AgeTo");
         });

        HasMany(x => x.Calendar).AsBag();

        HasManyToMany(x => x.Tags)
            .WithTableName("Event_Tags")
            .WithParentKeyColumn("EventId")
            .WithChildKeyColumn("TagId").AsBag();
    }
}

Dann benutze ich die Nhibernate-schema-Generierung zum Ausgang meiner ddl in eine Datei.

FileInfo t = new FileInfo(Server.MapPath("~/bin/MyDDL.sql"));
        StreamWriter writer = t.CreateText();

        new SchemaExport(cfg).Execute(true, false, false, true, NHibernateSession.Current.Connection, writer);

So weit So gut. Jedoch sind die generierten ddl-Code für diese Tabelle nicht übereinstimmen, und tatsächlich einen Fehler enthält.

create table Event_Header (
   Id INT IDENTITY NOT NULL,
   EmailAddress NVARCHAR(255) null,
   PhoneNumber NVARCHAR(255) null,
   State string null,
   Website NVARCHAR(255) null,
   Description NVARCHAR(255) null,
   Name NVARCHAR(255) null,
   Price DECIMAL(19,5) null,
   Rating INT null,
   AgeTo INT null,
   AgeFrom INT null,
   primary key (Id)
)
  • Die Enum Zustand wird als Zeichenfolge dargestellt, obwohl ich versuchte es zu zwingen, mit INT
  • Die Telefonnummer, die Länge entspricht nicht der Zuordnung.

Ich Frage mich, wie ich das Debuggen dieser. Ist das ein problem mit dem mapping in FluentNH oder ist es ein problem mit der schema-generator. Wenn ich könnte die Ausgabe der erstellten xml-Datei, dann könnte ich überprüfen. Weiß jemand, wie dies zu tun?

Dank,

InformationsquelleAutor madcapnmckay | 2009-03-13
Schreibe einen Kommentar