VS 2012 (11.0.60315.01 Update 2), C# 5, Entity Framework 5.0.0.0 (Runtime v4.0.30319)Entity Framework 5 - удаление дочерних записей
Я знаю, что подобные вопросы были размещены в прошлом, но кажется, нет ответа. Я думаю, что понимаю ошибку, но меня больше интересует поиск «желаемого» решения. Все, что я хочу сделать, это удалить запись из таблицы Child. Может ли кто-нибудь помочь?
Это полный и простой пример. В SaveChanges() выдает следующее исключение:
«Операция не удалась:. Отношения не могут быть изменены, так как один или несколько внешних ключей свойств ненулевое При внесении изменений в отношениях, для соответствующего свойства внешнего ключа установлено значение null. Если внешний ключ не поддерживает нулевые значения, необходимо определить новое отношение, для свойства внешнего ключа должно быть назначено другое ненулевое значение, или не связанный с ним объект должен быть удаленным ".
код выглядит следующим образом:
using System.Linq;
namespace EFDeleteTest
{
class Program
{
static void Main(string[] args)
{
using (EFTestEntities context = new EFTestEntities())
{
var parent = context.Parents.Single(p => p.Id == 1);
var child = parent.Children.Single(c => c.Id == 1);
parent.Children.Remove(child);
context.SaveChanges(); // Throws the above Exception
}
}
}
}
База данных выглядит следующим образом:
Parent
Id (PK, int, not null) IDENTITY
Name (nvarchar(50), null)
Child
Id (PK, int, not null) IDENTITY
ParentId (FK, int, not null) -- Foreign Key to the Parent Table (Id column))
Name (nvarchar(50), null)
Существует одна запись в таблице Parent (Id = 1) и есть 2 записей в Детский стол (идентификаторы 1 и 2). У обоих записей Child есть ParentId = 1.
Вы должны добавить больше тегов в свой вопрос, таких как 'C#', 'VS2012' и т. Д. Таким образом вы получите больше просмотров и ответов. – Komengem