具有Count = 1的此SqlParameterCollection的索引1无效

时间:2011-10-22 10:05:03

标签: c# nhibernate fluent-nhibernate fluent-nhibernate-mapping

我注意到的是,我正在引用的Ncv报告字段中没有生成。以下是我收到的错误。

以下是我的域名的样子,我收到的错误是此SqlParameterCollection的无效索引1,Count = 1。

public class NcvMap : SubclassMap<Ncv>
{
    public NcvMap()
    {
        HasManyToMany<Document>(x => x.Technician)
            .Cascade.All();

        HasManyToMany<Document>(x => x.Neurologist)
            .Cascade.All();

        HasManyToMany<Document>(x => x.Transcriber)
            .Cascade.All();

        References<Document>(x => x.Report).Nullable();
    }
}

public class Ncv : Report
{
    public virtual IList<Document> Technician { get; private set; }
    public virtual IList<Document> Neurologist { get; private set; }
    public virtual IList<Document> Transcriber { get; private set; }
    public virtual Document Report { get; set; }
    public virtual NcvType Type { get; set; }

    public Ncv()
    {
        this.Technician = new List<Document>();
        this.Neurologist = new List<Document>();
        this.Transcriber = new List<Document>();
    }
}

public class Report : BaseModel
{
    public virtual Patient Patient { get; set; }
    public virtual ReportStatus Status { get; set; }
    public virtual DateTime Appointment { get; set; }
    public virtual long Kareo_id { get; set; }
    public virtual IList<ReportLog> Logs { get; private set; }

    public Report() 
    {
        this.Status = ReportStatus.New;
        this.Logs = new List<ReportLog>();
    }

    public virtual void AddLog(ReportLog log)
    {
        log.Report = this;
        this.Logs.Add(log);
    }
}

public class ReportMap : ClassMap<Report>
{
    public ReportMap()
    {
        Id(x => x.Id);
        Map(x => x.CreateDate);
        Map(x => x.LastModified);
        Map(x => x.Appointment);
        Map(x => x.Status).CustomType<int>();
        Map(x => x.Kareo_id);

        HasMany<ReportLog>(x => x.Logs)
            .Cascade.All();

        References<Patient>(x => x.Patient);
    }
}

1 个答案:

答案 0 :(得分:1)

好的问题是在

public class Ncv : Report

我将我的映射引用命名为“Report”类

public virtual Document Report { get; set; }

因此,请勿使用与该类相同的名称命名您的属性。它打破了CreateSchema