Entity Framework 3.5SP1 вставить в неправильном порядке - PullRequest
3 голосов
/ 28 апреля 2011

Цитируется из ответа Алекса Джеймса Структура сущности порядка вставки строк :

Порядок действий в контексте может противоречить этим правилам.Например, если вы делаете это: ctx.AddToProducts (new Product {Name = "Bovril", Category = new Category {Name = "Food"}});

но из-за ограничений ссылочной целостности мы должны переупорядочить, как это, прежде чем пытаться вставить в базу данных:
Категория
Продукт

Моя проблема в том, что мой кодвнезапно вставляет элементы в неправильном порядке, а именно:

Товар
Категория

, что очень неправильно.
Может кто-нибудь сказать мне, где мне нужно искатьчтобы решить эту проблему?Я уверен, что в моей таблице категорий нет FK для любых других таблиц.

Спасибо: -)

Редактировать: подробные пробные версии и ошибки, каждая ревизия показала мне, что это потому, чтоДанные ассоциации в файле edmx были случайно удалены!Спасибо всем за помощь: -)

Ответы [ 2 ]

1 голос
/ 27 августа 2011
Insert into Customer_Receipt_Table
(
    MemAsso_Code,MAName,Allotmentno,Name,SchemeName,
    InstallmentAmount,InstallmentNo,ModeOfPay,
    CU_Date,VaucharNo,Date
) 
values
(
     '" + lblintroducerid.Text + "',
     '" + lblmaname.Text + "',
     '" + lblallotmentno.Text + "',
     '" + lblname.Text + "',
     '" + lblScheme.Text + "',
     '" + lblinsamnt.Text + "',
     '1',
     '" + radiobtnpayment.SelectedItem.Text + "',
     '" + DateTime.Now.ToShortDateString() + "',
     '" + txtvousherno.Text + "',
     '" + lbldate.Text + "'
);
1 голос
/ 28 апреля 2011

Может быть, во вселенной что-то не так, но, вероятно, нет .Поскольку раньше он работал, проблема явно в вашем коде.

Итак, начните с устранения всех факторов.Например, напишите небольшой тест, который вставит категорию и продукт, сохраните его.Работайте оттуда: в случае сбоя следите за сгенерированным SQL, дважды проверяйте схему базы данных, проверяйте модель структуры сущности (модель хранилища, отображение, объектную модель).

Если первый тест пройден успешно, посмотрите, где различия с вашим реальным кодом.Добавляйте код до тех пор, пока он снова не выйдет из строя.

Работайте систематически, в конце концов вы найдете ошибку.

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