Связь сущностей в микросервисах с использованием Entity Framework Core и миграций - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть два сервиса: MatchMakingService и UserService. У меня есть консольное приложение миграции, использующее. net ядро ​​и Entity Framework Core, которое создает схему базы данных для обеих служб.

В схеме UserService есть объект (UserInformation), который имеет отношение один к одному сущности (UserGameInformation) из MatchMakingService.

Этот код такой же, как в общей базе данных для приложения.

public class UserInformation
{
  string id {get; set;}
  string name {get; set;}
  UserGameInformation UserGameInformation {get; set;}
}

public class UserGameInformation
{
  string id {get;set;}
  string name {get;set;}
}

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

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

1 Ответ

1 голос
/ 04 февраля 2020

Когда два микросервиса совместно используют базу данных и имеют несколько общих сущностей, вы должны использовать отдельный проект для управления миграциями (или использовать сначала код из существующего рабочего процесса сначала база данных). Затем каждый сервис создает свой собственный набор объектов, но ни один из них не отвечает за управление схемой базы данных.

...