C# Fluent NHibernate-从映射中删除模式,以便使用SQLite进行测试
我正在尝试使用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
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我喜欢这样,因为它将模式名称与实体并置,如果进行故障排除,这里也更可能遇到。这也是一个好问题。