C# Fluent NHibernate-从映射中删除模式,以便使用SQLite进行测试

C# Fluent NHibernate-从映射中删除模式,以便使用SQLite进行测试,c#,nhibernate,sqlite,fluent-nhibernate,C#,Nhibernate,Sqlite,Fluent Nhibernate,我正在尝试使用SQLite对我的映射运行一些测试。我的映射如下所示: public class UserMap : BaseValidatableDomainMap<User> { public UserMap() { Table("blanka.[User]"); Id(x => x.Id).GeneratedBy.Identity(); Map(x => x.UserName); Map

我正在尝试使用SQLite对我的映射运行一些测试。我的映射如下所示:

public class UserMap : BaseValidatableDomainMap<User>
{
    public UserMap()
    {
        Table("blanka.[User]");
        Id(x => x.Id).GeneratedBy.Identity();

        Map(x => x.UserName);
        Map(x => x.FirstName);
        Map(x => x.MiddleName);
        Map(x => x.LastName);
        Map(x => x.EmailAddress);
        Map(x => x.OtherEmailAddress);
        Map(x => x.PhoneNumber);
        Map(x => x.City);

        References(x => x.Company, "CompanyId");
        References(x => x.State, "StateId");
    }
}
更新 下面是我最终如何解决这个问题的:

我从我的UserMap中删除了架构,因此它看起来像这样:

public class UserMap : BaseValidatableDomainMap<User>
{
    public UserMap()
    {
        Table("[User]");
        Id(x => x.Id).GeneratedBy.Identity();

        Map(x => x.UserName);
        Map(x => x.FirstName);
        Map(x => x.MiddleName);
        Map(x => x.LastName);
        Map(x => x.EmailAddress);
        Map(x => x.OtherEmailAddress);
        Map(x => x.PhoneNumber);
        Map(x => x.City);

        References(x => x.Company, "CompanyId");
        References(x => x.State, "StateId");
    }
}
    private static ISessionFactory CreateSessionFactory()
    {
        var config = Fluently.Configure();
        config = config.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c.FromConnectionStringWithKey("BLANKADB")).DefaultSchema("blanka"))
        .ExposeConfiguration( c => c.SetProperty("current_session_context_class", "web"))
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<BlankaObject>());
        return config.BuildSessionFactory();
    }
公共类UserMap:BaseValidatableDomainMap
{
公共用户映射()
{
表(“[用户]”);
Id(x=>x.Id).GeneratedBy.Identity();
映射(x=>x.UserName);
Map(x=>x.FirstName);
Map(x=>x.MiddleName);
Map(x=>x.LastName);
映射(x=>x.EmailAddress);
映射(x=>x.OtherEmailAddress);
Map(x=>x.PhoneNumber);
地图(x=>x.City);
参考文件(x=>x.公司,“公司ID”);
引用(x=>x.State,“StateId”);
}
}
然后我更改了我的应用程序配置,将默认模式设置为blanka,如下所示:

public class UserMap : BaseValidatableDomainMap<User>
{
    public UserMap()
    {
        Table("[User]");
        Id(x => x.Id).GeneratedBy.Identity();

        Map(x => x.UserName);
        Map(x => x.FirstName);
        Map(x => x.MiddleName);
        Map(x => x.LastName);
        Map(x => x.EmailAddress);
        Map(x => x.OtherEmailAddress);
        Map(x => x.PhoneNumber);
        Map(x => x.City);

        References(x => x.Company, "CompanyId");
        References(x => x.State, "StateId");
    }
}
    private static ISessionFactory CreateSessionFactory()
    {
        var config = Fluently.Configure();
        config = config.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c.FromConnectionStringWithKey("BLANKADB")).DefaultSchema("blanka"))
        .ExposeConfiguration( c => c.SetProperty("current_session_context_class", "web"))
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<BlankaObject>());
        return config.BuildSessionFactory();
    }
私有静态ISessionFactory CreateSessionFactory()
{
var config=fluntly.Configure();
config=config.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c=>c.FromConnectionStringWithKey(“BLANKADB”)).DefaultSchema(“blanka”))
.ExposeConfiguration(c=>c.SetProperty(“当前会话上下文类”、“web”))
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf());
返回config.BuildSessionFactory();
}

我把SQLite测试配置放在一边,因为它讨厌模式=D

使用默认模式配置属性(我知道它在配置中,不知道如何快速设置)而不是将其放入类映射中怎么样。

来自Fluent:

公共类PersonMap:ClassMap
{
公众人物地图()
{
模式(“替代模式”);
}
}

Thx@Nelson Miranda我喜欢这样,因为它将模式名称与实体并置,如果进行故障排除,这里也更可能遇到。这也是一个好问题。