Как создать таблицу типа репозитория без FK?C#

Место общения программистов C#
Ответить
Anonymous
 Как создать таблицу типа репозитория без FK?

Сообщение Anonymous »

Можно ли иметь тип в Entity Framework Core, который не создает FK для каждой другой таблицы, которая его использует? Создание схемы БД из модели C# с помощью Add-Migration и Update-Database.
Например, скажем, у меня есть фильмы, в которых есть изображения и выбранное изображение. Кроме того, есть Актеры, у которых также есть изображения, один из них — ProfileImage и т. д.
Если я просто создам следующее:

Код: Выделить всё

class Image
{
public int Id { get; set; }
public string Path { get; set; }
public byte[] Image { get; set; }
}

class Movie
{
public int Id { get; set; }
public string Title { get; set; }
public ICollection Images { get; set; }
public Image SelectedImage { get; set; }
}

class Actor
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection Images { get; set; }
public Image ProfileImage { get; set; }
}
Результат будет содержать:

Код: Выделить всё

CREATE TABLE IF NOT EXISTS "MyImages"
(
"Id" TEXT NOT NULL CONSTRAINT "PK_MyImages" PRIMARY KEY,
"Path" TEXT NOT NULL,
"Image" BLOB NOT NULL,
"MovieId" TEXT NULL,
"ActorId" TEXT NULL,
CONSTRAINT "FK_MyImages_Movies_MovieId" FOREIGN KEY ("MovieId") REFERENCES "Movies" ("Id")
CONSTRAINT "FK_MyImages_Movies_ActorId" FOREIGN KEY ("ActorId") REFERENCES "Actors" ("Id")
... for all other classes that have an image array in them ...
);
Я хочу, чтобы все эти внешние ключи просто не существовали. Я знаю, что это создает всевозможные возможности для указателей в никуда, но, если меня это устраивает, как я могу это сделать?


Подробнее здесь: https://stackoverflow.com/questions/798 ... ithout-fks
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»