Описание < /h2>
Уважаемая All, < /p>
У меня есть веб -приложение C osp net Core, которое использует стратегию таблицы для конкретного типа (TPC) в его структура базы данных. < /p>
Для простоты допустим, что мое приложение имеет исключительно 3 таблицы: A, B и c. < /p>
относительно таблицы A, Он имеет два столбца (C1 и C2), а также уникальный столбец идентификатора (с именем «ID»). C1 является нулевым столбцом Dateonly; C2-это не нулеваемый столбец Dateonly. Таким образом, из обсуждения опущены. Таблицы B и C сопоставлены с классами «class_b» и «class_c», соответственно. Наконец, class_b и class_c являются прямыми потомками class_a. < /P>
ограничение < /h2>
Один из моих бизнес -случаев подразумевает ограничение базы данных над таблицей A. C1 должен быть больше, чем C2, когда C1 не является нулевым. < /P>
Вопрос < /h2>
Учитывая вышеупомянутый контекст, как можно реализовать ограничение на Table_a, используя беглый API во время создания моделей? Это ограничение должно быть непосредственно применимым и наследственным его потомками. Между тем, документация Microsoft не ссылается на какое -либо потенциальное конфликт ограничений (см. Здесь) из -за стратегии TPC (см. Здесь, здесь и здесь).
реализация ограничения (пример кода) >
namespace MyApplication.DataPersistance
public class Class_A
{
public DateOnly? C1 {get;set;}
public DateOnly C2 {get;set;}
}
public class Class_B: Class_A
{
// ... other properties
}
public class Class_C: Class_A
{
// ... other properties
}
public class ApplicationDbContext: IdentityDbContext
{
public DBSet A {get;set;}
public DBSet B {get;set;}
public DBSet C {get;set;}
// ... other tables
public ApplicationDbContext(DbContextOptions options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity(entity=>{
entity.ToTable(b => b.HasCheckConstraint("CK_Class_A_C1_gt_C2", "[C1] > [C2]"));
entity.UseTpcMappingStrategy();
});
modelBuilder.Entity(entity=>{
});
modelBuilder.Entity(entity=>{
});
// ... configuration of other tables ...
}
}
< /code>
Заключение < /h3>
Пока что стратегия TPC, по -видимому, имеет некоторые ограничения в отношении реализаций ограничения базы данных. Тем не менее, я хочу узнать мнение и опыт сообщества Stackoverflow в этой теме.
Искренне,
Подробнее здесь: https://stackoverflow.com/questions/794 ... work-ef-cl
Как реализовать ограничение базы данных в классе C# Entity Framework (EF), который применяет стратегию таблицы для конкр ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение