Код: Выделить всё
[Serializable]
[DataContract]
public abstract class DefinitionBase : BusinessEntity
{
[DataMember]
public string Name { get; set; }
[DataMember]
public List Categories { get; set; }
//[DataMember]
//public virtual DefinitionBase Parent { get; set; }
}
public interface IRevisionState
{
public List Categories { get; set; }
public List Entities { get; set; }
public List EndPoints { get; set; }
public List DataElements { get; set; }
}
[Serializable]
[DataContract]
public abstract class RuleApp : DefinitionBase, IRevisionState
{
[DataMember]
public List Entities { get; set; }
public List EndPoints { get; set; }
public List DataElements { get; set; }
}
[Serializable]
[DataContract]
public sealed class CatalogRuleApp : RuleApp, IIdentifiableEntity
{
public byte[] Version { get; set; }
[DataMember]
public int Revision { get; set; } = 1;
[IgnoreDataMember]
public string RevisionState
{
get
{
var serializer = (DataContractSerializer)AppWide.Container.Resolve();
var xml = serializer.SerializeToXml(this);
return xml;
}
set
{
if (string.IsNullOrEmpty(value))
return;
var serializer = (DataContractSerializer)AppWide.Container.Resolve();
var revision = serializer.DeserializeFromXml(value);
if (revision != null)
{
Categories = revision.Categories;
Entities = revision.Entities;
EndPoints = revision.EndPoints;
DataElements = revision.DataElements;
}
}
}
[DataMember]
public CheckIn CheckedIn { get; set; }
[DataMember]
public CheckOut CheckedOut { get; set; }
}
[Serializable]
[DataContract]
public class CheckIn : BusinessEntity, IIdentifiableEntity
{
#region Navigation
public CatalogRuleApp? RuleApp { get; set; }
public Guid RuleAppId { get; set; }
#endregion
[DataMember]
public User User { get; set; }
public Guid UserId { get; set; }
[DataMember]
public DateTime DateTime { get; set; }
[DataMember]
public string? Comments { get; set; }
#region IIdentifiableEntity members
public Guid EntityId
{
get => Id;
set => Id = value;
}
#endregion
}
Код: Выделить всё
class RuleAppEntityTypeConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.HasNoDiscriminator();
builder
.Ignore(x => x.Categories)
.Ignore(x => x.DataElements)
.Ignore(x => x.EndPoints)
.Ignore(x => x.Entities); // Error Throws here
builder.ToTable(nameof(RuleApp), b => b.IsTemporal());
}
}
class CatalogRuleAppEntityTypeConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.ToTable(nameof(RuleApp))
.Ignore(x => x.EntityId)
.HasNoDiscriminator();
builder.Property(e => e.RevisionState).HasColumnName("State");
builder.Property(p => p.Version).IsRowVersion();
}
}
class CheckInEntityTypeConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.ToTable($"{nameof(CheckIn)}s", b => b.IsTemporal())
.Ignore(x => x.EntityId);
}
}
class CheckOutEntityTypeConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.ToTable($"{nameof(CheckOut)}s", b => b.IsTemporal())
.Ignore(x => x.EntityId);
}
}
Код: Выделить всё
[DataMember]
public virtual DefinitionBase Parent { get; set; }
< /code>
Я получаю эту ошибку: < /p>
Категории свойства 'нельзя игнорировать на типе' ruleapp ', потому что оно объявлено на базовом типе «определение определения». Чтобы исключить это свойство из вашей модели, используйте атрибут [notmapped] или «игнорировать» на базовом типе в «OnModelCreating».
Source=microsoft.entityFrameWorkCore
Цель добавления родителя Подробнее здесь: https://stackoverflow.com/questions/788 ... -ef-core-8
Мобильная версия