EF Core и DDD с составными ключами в базе данныхC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 EF Core и DDD с составными ключами в базе данных

Сообщение Anonymous »

Я пытаюсь настроить EF Core для своих объектов. В базе данных у меня есть такая таблица:



Колуна
Типо




InspectionId
int


QuestionGroup
varchar


Вопрос
varchar


Ответ


Ответ
varchar


Наблюдение
varchar< /td>


CreatedAt
datetime



У меня есть составной первичный ключ, состоящий из InspectionId, QuestionGroup, Вопроса, Ответа.< /p>
Я пытался создать свою сущность следующим образом:

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

public class Checklist
{
public Checklist(ChecklistId id, string observation, int userId, DateTime createdAt)
{
Id = id;
CreatedAt = createdAt;
Observation = observation;
UserId = userId;
}

public ChecklistId Id { get; set; }
public string Observation { get; set; }
public int UserId { get; set; }
public DateTime CreatedAt { get; set; }
}

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

public class ChecklistId
{
public ChecklistId(int inspectionId, string questionGroup, string question, string answer)
{
InspectionId = inspectionId;
QuestionGroup = questionGroup;
Question = question;
Answer = answer;
}

public int InspectionId { get; set; }
public string QuestionGroup { get; set; }
public string Question { get; set; }
public string Answer { get; set; }
}
Как настроить EF Core для поддержки этого объекта?
Я пробовал использовать эту конфигурацию, но не получилось:

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

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

modelBuilder.Entity(entity =>
{
entity.HasKey(e => new { e.Id.InspectionId, e,Id.QuestionGroup, e.Id.Question, e.Id.Answer });

entity.OwnsOne(e => e.Id, id =>
{
id.Property(i => i.InspectionId).HasColumnName("InspectionId");
id.Property(i => i.QuestionGroup).HasColumnName("QuestionGroup");
id.Property(i => i.Question).HasColumnName("Question");
id.Property(i => i.Answer).HasColumnName("Answer");
});

// ... others properties
});
}
Проект создан с помощью
  • .NET 8
  • SQL Server 2008
Я не могу изменить базу данных, чтобы таблица имела уникальный идентификатор, например Guid, можно ли настроить EF Core с помощью составных ключей, используя идентификаторы на стороне домена ?

Подробнее здесь: https://stackoverflow.com/questions/790 ... n-database
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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