Entity Framework. Почему я получаю необязательную зависимость при совместном использовании таблиц? ⇐ C#
-
Anonymous
Entity Framework. Почему я получаю необязательную зависимость при совместном использовании таблиц?
Я получаю следующее предупреждение:
Microsoft.EntityFrameworkCore.Update: Внимание: сущность типа «Event.Description#RichText» является необязательной зависимой, использующей совместное использование таблиц. У сущности нет свойства с ненулевым значением, позволяющего определить, существует ли сущность. Это означает, что при запросе экземпляр объекта не будет создан вместо экземпляра, для всех свойств которого установлены нулевые значения. Все вложенные иждивенцы также будут потеряны. Либо не сохраняйте экземпляры только с нулевыми значениями, либо отмечайте входящую навигацию как требуется в модели. Рассмотрите возможность использования DbContextOptionsBuilder.EnableSensitiveDataLogging, чтобы просмотреть ключевые значения объекта.
Это объявляется как:
Событие публичного класса { публичный RichText? Описание {получить; набор; } } и
публичный класс RichText { общественная строка OpenXmlFilename {get; частный набор; } общественная строка HtmlFilename {get; частный набор; } общественная строка HtmlBody {get; частный набор; } публичная строка Text {get; частный набор; } публичный RichText() { OpenXmlFilename = HtmlFilename = Text = HtmlBody = string.Empty; } } Чего я не понимаю, так это предупреждений вокруг этого сообщения о том, что я не могу сохранить свойство «Описание», если все его свойства имеют значение NULL. Но я все равно не могу этого сделать, поскольку все они объявлены ненулевыми.
Так почему же предупреждение? И есть ли проблема, если я никогда не создам экземпляр объекта RichText со всеми нулевыми свойствами?
В соответствии с просьбой ниже, вот часть TrackingDbContextModelSnapshot.cs
modelBuilder.Entity("LouisHowe.core.Models.Event", b => { b.OwnsOne("LouisHowe.core.Models.RichText", "Описание", b1 => { b1.Property("EventId") .HasColumnType("int"); b1.Property("HtmlBody") .Требуется() .HasColumnType("nvarchar(max)"); b1.Property("HtmlFilename") .Требуется() .HasColumnType("nvarchar(max)"); b1.Property("OpenXmlFilename") .Требуется() .HasColumnType("nvarchar(max)"); b1.Property("Текст") .Требуется() .HasColumnType("nvarchar(max)"); b1.HasKey("EventId"); b1.ToTable("События"); b1.WithOwner() .HasForeignKey("EventId"); });
Я получаю следующее предупреждение:
Microsoft.EntityFrameworkCore.Update: Внимание: сущность типа «Event.Description#RichText» является необязательной зависимой, использующей совместное использование таблиц. У сущности нет свойства с ненулевым значением, позволяющего определить, существует ли сущность. Это означает, что при запросе экземпляр объекта не будет создан вместо экземпляра, для всех свойств которого установлены нулевые значения. Все вложенные иждивенцы также будут потеряны. Либо не сохраняйте экземпляры только с нулевыми значениями, либо отмечайте входящую навигацию как требуется в модели. Рассмотрите возможность использования DbContextOptionsBuilder.EnableSensitiveDataLogging, чтобы просмотреть ключевые значения объекта.
Это объявляется как:
Событие публичного класса { публичный RichText? Описание {получить; набор; } } и
публичный класс RichText { общественная строка OpenXmlFilename {get; частный набор; } общественная строка HtmlFilename {get; частный набор; } общественная строка HtmlBody {get; частный набор; } публичная строка Text {get; частный набор; } публичный RichText() { OpenXmlFilename = HtmlFilename = Text = HtmlBody = string.Empty; } } Чего я не понимаю, так это предупреждений вокруг этого сообщения о том, что я не могу сохранить свойство «Описание», если все его свойства имеют значение NULL. Но я все равно не могу этого сделать, поскольку все они объявлены ненулевыми.
Так почему же предупреждение? И есть ли проблема, если я никогда не создам экземпляр объекта RichText со всеми нулевыми свойствами?
В соответствии с просьбой ниже, вот часть TrackingDbContextModelSnapshot.cs
modelBuilder.Entity("LouisHowe.core.Models.Event", b => { b.OwnsOne("LouisHowe.core.Models.RichText", "Описание", b1 => { b1.Property("EventId") .HasColumnType("int"); b1.Property("HtmlBody") .Требуется() .HasColumnType("nvarchar(max)"); b1.Property("HtmlFilename") .Требуется() .HasColumnType("nvarchar(max)"); b1.Property("OpenXmlFilename") .Требуется() .HasColumnType("nvarchar(max)"); b1.Property("Текст") .Требуется() .HasColumnType("nvarchar(max)"); b1.HasKey("EventId"); b1.ToTable("События"); b1.WithOwner() .HasForeignKey("EventId"); });
Мобильная версия