Наследование в entity framework


Download 39.18 Kb.
bet1/5
Sana28.10.2023
Hajmi39.18 Kb.
#1730049
  1   2   3   4   5
Bog'liq
NASLEDOVANIYE ...


НАСЛЕДОВАНИЕ В ENTITY FRAMEWORK
EF может сопоставить иерархию типов .NET с базой данных. Это позволяет писать сущности .NET в коде, как обычно, используя базовые и производные типы, а также заставить EF легко создавать соответствующую схему базы данных, запрашивать запросы и т. д. Фактические сведения о сопоставлении иерархии типов зависят от поставщика; На этой странице описывается поддержка наследования в контексте реляционной базы данных.
Сопоставление иерархии типов сущностей
По соглашению EF не будет автоматически проверять базовые или производные типы; это означает, что если требуется сопоставить тип CLR в иерархии, необходимо явно указать этот тип в модели. Например, указание только базового типа иерархии не приведет к тому, что EF Core неявно включает все ее подтипы.
В следующем примере предоставляется dbSet для Blog и его подкласса RssBlog. Если Blog имеет какой-либо другой подкласс, он не будет включен в модель.
C#Копировать
internal class MyContext : DbContext
{
public DbSet Blogs { get; set; }
public DbSet RssBlogs { get; set; }
}


public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}


public class RssBlog : Blog
{
public string RssUrl { get; set; }
}
Примечание
При использовании сопоставления TPH столбцы базы данных автоматически добавляются к значению NULL. Например, столбец допускает значение NULL, RssUrl так как обычные Blog экземпляры не имеют этого свойства.
Если вы не хотите предоставлять для DbSet одной или нескольких сущностей в иерархии, можно также использовать API Fluent, чтобы убедиться, что они включены в модель.
Совет
Если вы не полагаетесь на соглашения, можно явно указать базовый тип с помощью HasBaseType. Вы также можете использовать для .HasBaseType((Type)null) удаления типа сущности из иерархии.

Download 39.18 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling