Entity Framework EntityKey / Проблема внешнего ключа - PullRequest
0 голосов
/ 31 мая 2010

Я продолжаю получать ту же ошибку: объекты в 'VlaamseOverheidMeterEntities.ObjectMeter' участвуют в отношении 'FK_ObjectMeter_Meter' 0 связанных 'Метр' были найдены. Ожидается 1 метр.

У меня следующая структура таблицы:

Метр 1 <- * ObjectMeter * -> 1 VO_Object

Это всегда один и тот же сценарий: первый счетчик добавляется в базу данных, а второй выводит ошибку выше.

В моем менеджере есть следующий код:

public List<string> addTemporary(string username, string meterNaam, string readingType, string parentID) {
        Meter meter = new Meter();
        VO_Object voObject = objectManager.getObjectByID(parentID);
        ObjectMeter objMeter = new ObjectMeter();

        meter.readingType = (int)Enum.Parse(typeof(ReadingType), readingType);
        meter.isActive = true;
        meter.name = meterNaam;
        meter.startDate = DateTime.Now;
        meter.endDate = DateTime.Now.AddYears(6000);
        meter.uniqueIdentifier = "N/A";
        meter.meterType = (int)Enum.Parse(typeof(MeterType), "NA");
        meter.meterCategory = (int)Enum.Parse(typeof(MeterCategory), "NA");
        meter.energyType = (int)Enum.Parse(typeof(EnergyType), "NA");
        meter.utilityType = (int)Enum.Parse(typeof(UtilityType), "NA");
        meter.unitOfMeasure = (int)Enum.Parse(typeof(UnitOfMeasure), "NA");

        objMeter.valid_from = meter.startDate;
        objMeter.valid_until = meter.endDate;

        objMeter.Meter = meter;
        objMeter.VO_Object = voObject;

        createMeter(meter);

        List<String> str = new List<string>();
        str.Add("" + meter.meterID);
        str.Add(meter.name);
        return str;
    }

и это в моем классе Дао, который ссылается на базу данных:

internal void CreateMeter(Meter _meter) {
        _entities.AddToMeter(_meter);
        _entities.SaveChanges();
    }

Может кто-нибудь объяснить эту ошибку?

Ronald

1 Ответ

0 голосов
/ 09 марта 2011

Если я понимаю ваш код: VO_Object является родительским для ObjectMeter, который является родительским для Meter. VO_Object уже существует в базе данных. Вы должны создать (сохранить) ObjectMeter перед созданием Meter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...