这个确切的标题可以在谷歌或这里在stackflow.com多次发现,但我得到这个错误的原因是像他们都没有:我在单位没有问题测试代码,但应用程序中完全相同的代码会导致此问题。我希望这是因为制图问题。这个SqlParameterCollection的计数= 13的索引13无效
这里是我的映射:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="My.Domain" namespace="My.Domain">
<class name="My.Domain.ReportFormFlag, My.Domain" table="ReportFormFlag" schema="Core">
<id name="FlagID">
<column name="FlagID" sql-type="uniqueidentifier" not-null="true"/>
<generator class="guid"/>
</id>
<property name="ReportInstanceID" column="ReportInstanceID" type="int" not-null="true"/>
<property name="FormID" column="FormID" type="int" not-null="true"/>
<property name="SiteOrProjectID" column="SiteOrProjectID" type="int" not-null="true"/>
<property name="IsFlagged" column="IsFlagged" type="int" not-null="true"/>
<property name="FlagComment" column="FlagComment" type="string" not-null="false"/>
</class>
</hibernate-mapping>
and here is my class
namespace My.Domain
{
[Serializable]
public class ReportFormFlag
{
public virtual Guid FlagID { get; set; }
public virtual int ReportInstanceID { get; set; }
public virtual int FormID { get; set; }
public virtual int SiteOrProjectID { get; set; }
public virtual int IsFlagged { get; set; }
public virtual string FlagComment { get; set; }
}
}
我用它来插入新记录代码:
var reportFormFlag = new ReportFormFlag
{
ReportInstanceID = 3554,
FormID = 25,
SiteOrProjectID = 0,
FlagComment = "test",
IsFlagged = 1
};
_provider.Save(reportFormFlag);
在NUnit的测试工作正常,但在应用程序中保存()引起的“Count = N的SqlParameterCollection的索引N无效”异常。
我使用的是NH 3.0,C#3.5,SQL Server 2008 R2。
任何洞察力非常感谢!
你说它在单元测试中运行良好...是否与同一个数据库相反?使用相同的_provider? – Goblin 2012-07-22 19:57:54