Колуна
Типо
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; }
}
Я пробовал использовать эту конфигурацию, но не получилось:
Код: Выделить всё
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
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-database