42 lines
No EOL
2.1 KiB
C#
42 lines
No EOL
2.1 KiB
C#
using Microsoft.EntityFrameworkCore;
|
||
using SurveyBackend.Core.Models;
|
||
using SurveyLib.Core.Models;
|
||
using SurveyLib.Infrastructure.EFCore.Data;
|
||
|
||
namespace SurveyBackend.Infrastructure.Data;
|
||
|
||
public class ApplicationDbContext : SurveyDbContext
|
||
{
|
||
public DbSet<User> Users { get; set; }
|
||
public DbSet<Group> Groups { get; set; }
|
||
|
||
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
|
||
: base(options)
|
||
{
|
||
|
||
}
|
||
|
||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||
{
|
||
// Вызов конфигурации базового контекста для моделей библиотеки
|
||
base.OnModelCreating(modelBuilder);
|
||
|
||
// Здесь можно описывать конфигурацию дополнительных сущностей и связи между моделями библиотеки и моделями приложения.
|
||
// Например, если Survey должен иметь связь с User (скажем, владелец опроса):
|
||
|
||
// Допустим, Survey не имеет в исходной модели свойства UserId.
|
||
// Можно использовать теневой ключ, или если ты готов расширить модель Survey в бэкенде.
|
||
// Пример с теневым ключом:
|
||
// modelBuilder.Entity<Survey>()
|
||
// .HasOne<User>() // тип связи: один пользователь
|
||
// .WithMany() // например, пользователь может владеть несколькими опросами
|
||
// .HasForeignKey("OwnerId"); // теневой ключ, который не прописан в модели Survey
|
||
|
||
// Или, если расширить Survey:
|
||
// public int? OwnerId { get; set; }
|
||
// modelBuilder.Entity<Survey>()
|
||
// .HasOne<User>()
|
||
// .WithMany(u => u.Surveys)
|
||
// .HasForeignKey(s => s.OwnerId);
|
||
}
|
||
} |