Я создал отношение многие ко многим, используя соглашения по умолчанию в EF CTP4, определив ICollection для объектов изображения и проекта.
Таблица сопоставления создается следующим образом:
create table [dbo].[Images_Project] (
[Images_Id] [uniqueidentifier] not null,
[Project_Id] [uniqueidentifier] not null,
primary key ([Images_Id]));
К сожалению, когда я удаляю проект, он не удаляется каскадно в таблицу сопоставления изображений.
Я бы ожидал, что EF сгенерирует ключ для свойств Imanges_Id и Project_Id, но это не так.Как настроить EF для удаления отображений изображений при удалении проекта?(только запись отображения изображения, а не запись изображения)
Спасибо
[Обновление]
Хотя каскад, по-видимому, невозможен, можно предположить, почему следующий тест проходит:
[Test]
public void Can_delete_project_with_images()
{
var project = new Project { Title = "Test project" };
var image = new Image { Title = "Some image" };
project.AddImage(image);
context.Set<Project>().Add(project);
context.SaveChanges();
object id = project.Id;
object imageId = image.Id;
var fromDb = context.Projects.Find(id);
fromDb.ShouldNotBeNull();
context.Set<Project>().Remove(fromDb);
context.SaveChanges();
var fromDb2 = context.Images.Find(imageId);
fromDb2.ShouldNotBeNull();
fromDb2.Title.ShouldEqual("Some image");
}