2

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

这是我的域的样子,我收到的错误是 Invalid index 1 for this SqlParameterCollection with 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);
    }
}
4

1 回答 1

1

Ok the problem was that in

public class Ncv : Report

I named my mapped reference the same name as the class "Report"

public virtual Document Report { get; set; }

So don't name your property with the same name as the class. It breaks the CreateSchema

于 2011-10-23T09:50:47.583 回答