Колуна
Типо
InspectionId
int
< /tr>
QuestionGroup
varchar
Вопрос
varchar
Ответ
varchar
Наблюдение
varchar
CreatedAt
datetime
Где у меня есть составной ключ с InspectionId, QuestionGroup, Вопросом, Ответом.
Я пытался создать свою сущность как
Код: Выделить всё
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; }
}
Я пробовал использовать эту конфигурацию, но не получилось:
Код: Выделить всё
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 и
SqlServer 2008
Я не могу изменить базу данных, чтобы таблица имела уникальный id как Guid, можно ли настроить EF Core с помощью составных ключей, используя идентификаторы на стороне домена?
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-database