Отношение «многие ко многим» через не первичный ключ для устаревшей системы - PullRequest
0 голосов
/ 24 августа 2010

У меня есть устаревшая система, над которой я работаю, и есть особые отношения, с которыми у меня проблемы.

Проблема в том, что мне нужно связать пациента с HL7EPICareMeds ... вышеуказанные отношения, конечно, не работают.

С точки зрения таблицы, вот что у меня есть

Пациент:
PatientId: int, PK
ClinicPatientId: varchar --- не уникально

HL7EPICareMeds:
Id:: int, PK
ClinicPatientId: varchar
MedName: varchar
AdminTime: datetime

Должен ли я повторно использовать таблицу пациентов в качестве таблицы связи между ClinicPatientIDs и PatientId?

[ActiveRecord]
public class Patient : RecordBase<Patient>
{
    [PrimaryKey("PatientId", Generator=PrimaryKeyType.Native)]
    public int? Id
    {
        get { return _id; }
        set
        {
            _id = value;
        }
    }

    [HasAndBelongsToMany(Inverse = true, Lazy = true)]
    public IList<HL7EPICareMeds> Meds
    {
        get { return _meds; }
        set { _meds = value; }
    }
}

[ActiveRecord]
public class HL7EPICareMeds : RecordBase<HL7EPICareMeds>
{
    [PrimaryKey(Generator = PrimaryKeyType.Native)]
    public long Id
    {
        get { return _Id; }
        set
        {
            _Id = value;
        }
    }

    [Property("AdminTime")]
    public DateTime? AdministrationTime
    {
        get { return _AdministrationTime; }
        set { _AdministrationTime = value; }
    }

    [Property(NotNull = true,Update=false,Insert=false),
    ValidateLength(0, 20)]
    public string ClinicPatientId
    {
        get { return _ClinicPatientId; }
        set
        {
            _ClinicPatientId = value;
        }
    }

    [Property(NotNull = true),
    ValidateLength(0, 255)]
    public string MedName
    {
        get { return _MedName; }
        set
        {
            _MedName = value;
        }
    }

    [HasAndBelongsToMany()]
    public Patient Patient
    {
        get { return _patient; }
        set { _patient = value; }
    }
}

1 Ответ

0 голосов
/ 24 августа 2010

Посмотрите на элемент отображения свойства-ref. Это должно делать именно то, что вам нужно.

Используется для связывания объектов, когда FK не обязательно является PK в родительской таблице.

...