C# Nhibernate Save()不工作
我在谷歌上搜索了所有关于这个问题的信息,我不确定我的代码有什么问题。如果有人能帮我,我将不胜感激。我正在将自定义数据添加到uCommerce 7.2.2,这意味着通过添加新选项卡来扩展订单详细信息 为此,我创建了一个新表,如下所示-C# Nhibernate Save()不工作,c#,fluent-nhibernate,umbraco,umbraco-ucommerce,C#,Fluent Nhibernate,Umbraco,Umbraco Ucommerce,我在谷歌上搜索了所有关于这个问题的信息,我不确定我的代码有什么问题。如果有人能帮我,我将不胜感激。我正在将自定义数据添加到uCommerce 7.2.2,这意味着通过添加新选项卡来扩展订单详细信息 为此,我创建了一个新表,如下所示- CREATE TABLE [dbo].[uCommerce_OrderLineItemStatusAudit]( [OrderLineItemStatusAuditId] [int] IDENTITY(1,1) NOT NULL, [Li
CREATE TABLE [dbo].[uCommerce_OrderLineItemStatusAudit](
[OrderLineItemStatusAuditId] [int] IDENTITY(1,1) NOT NULL,
[LineOrderStatusId] [int] NOT NULL,
[CreatedOn] [datetime] NOT NULL,
[CreatedBy] [nvarchar](50) NOT NULL,
[RefOrderId] [int] NOT NULL,
[Message] [nvarchar](max) NULL,
[Sku] [nvarchar](50) NOT NULL,
PRIMARY KEY CLUSTERED
(
[OrderLineItemStatusAuditId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
该实体—
public class OrderLineItemStatusAudit : IEntity
{
public virtual int Id { get; set; }
public virtual int OrderLineItemStatusAuditId { get; set; }
public virtual int LineOrderStatusId { get; set; }
public virtual DateTime CreatedOn { get; set; }
public virtual string CreatedBy { get; set; }
public virtual int RefOrderId { get; set; }
public virtual string Message { get; set; }
public virtual string Sku { get; set; }
}
public class OrderLineItemStatusAuditMap : BaseClassMap<OrderLineItemStatusAudit>
{
public OrderLineItemStatusAuditMap()
{
Table("uCommerce_OrderLineItemStatusAudit");
Id(x => x.OrderLineItemStatusAuditId, "OrderLineItemStatusAuditId");
Map(x => x.LineOrderStatusId).Not.Nullable();
Map(x => x.Sku).Not.Nullable();
Map(x => x.CreatedOn).Not.Nullable();
Map(x => x.CreatedBy).Not.Nullable();
Map(x => x.RefOrderId).Not.Nullable();
Map(x => x.Message).Nullable();
}
}
为表和实体执行的映射-
public class OrderLineItemStatusAudit : IEntity
{
public virtual int Id { get; set; }
public virtual int OrderLineItemStatusAuditId { get; set; }
public virtual int LineOrderStatusId { get; set; }
public virtual DateTime CreatedOn { get; set; }
public virtual string CreatedBy { get; set; }
public virtual int RefOrderId { get; set; }
public virtual string Message { get; set; }
public virtual string Sku { get; set; }
}
public class OrderLineItemStatusAuditMap : BaseClassMap<OrderLineItemStatusAudit>
{
public OrderLineItemStatusAuditMap()
{
Table("uCommerce_OrderLineItemStatusAudit");
Id(x => x.OrderLineItemStatusAuditId, "OrderLineItemStatusAuditId");
Map(x => x.LineOrderStatusId).Not.Nullable();
Map(x => x.Sku).Not.Nullable();
Map(x => x.CreatedOn).Not.Nullable();
Map(x => x.CreatedBy).Not.Nullable();
Map(x => x.RefOrderId).Not.Nullable();
Map(x => x.Message).Nullable();
}
}
我已将该文件转介—
创建映射程序集标记并注册程序集标记也已完成
谢谢你的帮助
提前谢谢。我得到了这个问题的解决方案,我想我也应该把它贴在这里 NHibernate按约定处理属性名称,“LineOrderStatusId”将被视为外键。在这种情况下,最好在该类的映射中使用引用,并让NHibernate处理该关系 如果列名有一个后缀Id,那么它将被视为对某个父表的引用。这是uCommerce nHibernate映射使用的约定
谢谢是否保存或更新?您在哪里进行会话。提交/刷新?