问题说真的,默认是它映射为a string
但我需要它映射为int
.
我目前正在使用PersistenceModel
我的约定,如果这有任何区别.提前致谢.
更新 发现从主干上获取最新版本的代码解决了我的困境.
我有一个名为ReportRequest的类:
public class ReportRequest
{
Int32 templateId;
List<Int32> entityIds;
public virtual Int32? Id
{
get;
set;
}
public virtual Int32 TemplateId
{
get { return templateId; }
set { templateId = value; }
}
public virtual List<Int32> EntityIds
{
get { return entityIds; }
set { entityIds = value; }
}
public ReportRequest(int templateId, List<Int32> entityIds)
{
this.TemplateId = templateId;
this.EntityIds = entityIds;
}
}
Run Code Online (Sandbox Code Playgroud)
它使用Fluent Hibernate映射为:
public class ReportRequestMap : ClassMap<ReportRequest>
{
public ReportRequestMap()
{
Id(x => x.Id).UnsavedValue(null).GeneratedBy.Native();
Map(x …
Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何使用NHibernate配置与映射来更新表模式,而不是删除和重新创建它们.
目前我正在使用NHibernate.Tool.hbm2ddl.SchemaExport
带有FluentNHibernate 的obj来为mysql数据库生成数据库模式.虽然我不能说这是一个很大的问题,但每当我调用SchemaExport.Execute
数据库时,它都会删除所有表,然后重新创建它们.
如果我可以让它更新现有的表结构,尽可能保留数据,那会更酷.但我真的不想使用商业产品或代码生成器,因为我不喜欢一般的代码生成,而且我不需要这么多,我会考虑支付它.所以希望任何答案都会记住这些警告.
我知道如何使用show_sql
配置选项在运行时将SQL记录到log4net/NLog/trace窗口.
我正在寻找的是一种给Query<T>()
NHibernate检索生成的SQL的方法.
我查看了Persister类,Drivers,不同的拦截器和事件.有很多地方可以看,即使缩小搜索范围也会有很大的帮助.
如何配置Fluent NHibernate将查询输出到Trace或Debug而不是Console?我正在使用,MsSqlConfiguration.MsSql2008.ShowSql()
但它没有参数,我在谷歌上找不到任何东西.
基本问题:如何在Fluent NHibernate中创建双向一对多地图?
细节:
我有一个有很多孩子的父对象.在我的情况下,孩子没有父母,所以在数据库中,我想外键的母体有NOT NULL约束是没有意义的.我从Fluent NHibernate映射自动生成我的数据库.
我的父母有很多子对象,如下所示:
public class Summary
{
public int id {get; protected set;}
public IList<Detail> Details {get; protected set;}
}
public class Detail
{
public int id {get; protected set;}
public string ItemName {get; set;}
/* public Summary Owner {get; protected set;} */ //I think this might be needed for bidirectional mapping?
}
Run Code Online (Sandbox Code Playgroud)
这是我开始的映射:
public class SummaryMap : ClassMap<Summary>
{
public SummaryMap()
{
Id(x => x.ID);
HasMany<Detail>(x => x.Details);
}
}
public class DetailMap : …
Run Code Online (Sandbox Code Playgroud) 我是流利的NHibernate的新手.现在我遇到映射复合键的一个问题.任何人都可以指出URL或样品吗?
当你在流畅的NHibernate中设置字符串值时,它会将数据库值设置为Nvarchar(255),我需要存储相当多的基于用户输入的长字符串,而255是不切实际的.
只是为了添加这个是自动播放器的问题,因为我使用流畅的NHibernate来构建数据库.
c# nhibernate fluent-nhibernate automapping sharp-architecture
我试图将一些非常长的文本插入到字符串prop中 - 它与LinqToSql完全一致,现在我已切换到NHibernate并希望保存相同的实体,但nHibernate会抛出上述异常.
我怎样才能解决这个问题?
最初我的道具被定义为:
Map(x => x.Content, "fT_Content").Nullable();
Map(x => x.Fields, "fT_Fields").Nullable();
Run Code Online (Sandbox Code Playgroud)
现在他们是:这有效,但为什么我必须这样做?
Map(x => x.Content, "fT_Content").CustomSqlType("nvarchar(max)").Length(Int32.MaxValue).Nullable();
Map(x => x.Fields, "fT_Fields").CustomSqlType("nvarchar(max)").Length(Int32.MaxValue).Nullable();
Run Code Online (Sandbox Code Playgroud)
注意:我使用nuget有最新的nhibernate.
对于ref,这里是字段:
public virtual string Content
{
get;
set;
}
public virtual string Fields
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
我想避免去生产,突然插入停止在这张桌子上工作....
nhibernate HasOne()
和References()
nhibernate 之间有什么区别?