- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
NHibernate 抛出异常:“此 SqlParameterCollection 的索引 n 无效,Count=n。”当我尝试保存 Meter 对象时。问题出在 CurrentReading 属性上。如果我评论说映射出来,一切都很好。另外,如果我在数据库中手动设置 CurrentReading,NHibernate 查询也很好。
我是 NHibernate 的新手,非常感谢任何帮助。
我有以下类(class):
public class Meter
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual MeterReading CurrentReading { get; protected set; }
private IList<MeterReading> _readings;
public virtual ReadOnlyCollection<MeterReading> Readings
{
get { return new ReadOnlyCollection<MeterReading>(_readings); }
}
public virtual void AddMeterReading(MeterReading MeterReading)
{
_readings.Add(MeterReading);
if (CurrentReading == null || MeterReading.ReadingTimestamp > CurrentReading.ReadingTimestamp)
{
CurrentReading = MeterReading;
}
}
}
public class MeterReading
{
public virtual Guid Id { get; set; }
public virtual decimal Usage { get; set; }
public virtual DateTime ReadingTimestamp { get; set; }
}
还有这个流畅的 nhibernate 映射文件:
public sealed class MeterMap : ClassMap<Meter>
{
public MeterMap()
{
Id(x => x.Id);
References(m => m.CurrentReading)
.Column("CurrentMeterReadingId")
.LazyLoad()
.Cascade.None()
.Nullable();
HasMany(x => x.Readings)
.KeyColumn("MeterId")
.Access.CamelCaseField(Prefix.Underscore)
.LazyLoad()
.Inverse()
.Cascade.All();
}
}
public sealed class MeterReadingMap : ClassMap<MeterReading>
{
public MeterReadingMap()
{
Id(x => x.Id);
Map(x => x.ReadingTimestamp)
.Not.Nullable();
Map(x => x.Usage)
.Precision(18)
.Scale(8)
.Not.Nullable();
}
}
最佳答案
我的猜测是它与映射同一列两次有关。这就是此错误的一般含义。您可以尝试这种替代映射,因为您没有在 CurrentMeterReading 上使用级联:
References(m => m.CurrentReading)
.Column("CurrentMeterReadingId")
.Not.Update()
.Not.Insert();
.Nullable();
另外我认为延迟加载是默认启用的,所以我认为不需要在映射中指定它。
关于nhibernate - Count=n 的此 SqlParameterCollection 的索引 n 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9285605/
我在 catch block 中抛出了一个 The SqlParameter is already contained by another SqlParameterCollection 异常。 我觉
我想确切地知道我们是如何在 C# .NET 4.0 表单应用程序上做这些事情的: 声明 SqlCeParameterCollection 对象 向集合添加参数 将集合添加到命令中 以下是我当前代码的示
我正在尝试创建一个 SqlParameterCollection,但在 sp.Add() 方法中添加一些 SqlParameter 时出错。 请帮助我如何添加参数以及如何将它传递给我的另一个函数,我在
我需要访问父类的 ApplicationID 属性才能运行 Nhibernate 查询。在 NUnit 中为此查询运行测试会导致它失败,如下所示:“BusinessObjects.Integratio
我想为我的存储过程提供一个输出参数。此输出过程返回 byte[]。我该怎么做呢? 如果我执行以下操作: command.Parameters.Add(new SqlParameter("@Bytes"
有一种方法可以检查 SqlParameterCollection 中的 ReturnValue 参数,如果存在则检查该值是否违反约束。 public static void VerifyU
我正在尝试模拟数据库操作。我在模拟 SqlParameterCollection 时遇到问题。我尝试创建将返回 DbParameterCollection 的 virtual 方法,但随后我失去了 S
在我的一个项目中我遇到了这个错误: System.IndexOutOfRangeException: SqlParameterCollection does not contain SqlParame
我有以下代码。 // Get total row count and build Pagination object var countQuery = ArticleServerContext.Dat
这个异常(exception): 此 SqlParameterCollection 的索引 n 无效,Count= 通常指向重复的映射信息(参见 Stack Overflow + Google)。我很
我在Windows服务中使用2个线程(来自同一类)。我总是收到相同的错误消息: "The SqlParameter is already contained by another SqlParamet
我目前有一个连接类来处理我所有的数据库连接。我想要做的是在一页上构建一个 SqlParameterCollection 对象,然后将该对象传递给我的连接类。是否有可能做到这一点?我没有收到任何编译错误
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
为了解决这个问题,我绞尽脑汁好几个小时了,希望有人能帮我解决这个问题。 我在 C# 应用程序中插入数据库。作为一名优秀的编码员,我正在参数化我的查询。 相关代码为: int contactId = -
当使用如下所示的 using() {} (sic) block 时,并假设 cmd1 没有超出第一个 using 的范围() {} block ,为什么第二个 block 要抛出消息异常 The Sq
我有一个这样的测试数据库设计: 以下是伪代码: //BhillHeader public class BillHeader { public BillHeader() {
NHibernate 抛出异常:“此 SqlParameterCollection 的索引 n 无效,Count=n。”当我尝试保存 Meter 对象时。问题出在 CurrentReading 属性上
我创建了一个方法,它将抛出的任何异常插入到 MySql 服务器上“ExceptionLog”的表中。 异常日志表格式 idExceptionLog int (AI)用户(varchar 45)错误消息
我有以下代码: SqlParameter invidParam = new SqlParameter("@invid",obj.INVID); SqlParameter prodParam = new
private void txtName_KeyDown(object sender, KeyEventArgs e) { SqlDataAdapter DA = new SqlDataAda
我是一名优秀的程序员,十分优秀!