我使用以下模型构建器在数据库上设置我的关系。
在我的数据上下文中,我有:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema(schema: DbGlobals.SchemaName);
modelBuilder.AddConfiguration<Address>(new AddressConfiguration());
/*reduced for brevity*/
base.OnModelCreating(modelBuilder);
}
在哪里AddressConfiguration()
我有以下内容;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Data.EF.Configuration
{
internal class AddressConfiguration : DbEntityConfiguration<Address>
{
public override void Configure(EntityTypeBuilder<Address> entity)
{
entity.HasKey(x => x.Id);
entity.Property(x => x.Latitude).HasColumnType($"decimal(9,6)").IsRequired();
entity.Property(x => x.Longitude).HasColumnType($"decimal(9,6)").IsRequired();
//I have tried the following but it says doesnt exist
//entity.OnDelete(DeleteBehavior.Cascade);
}
}
}
现在我的地址模型有一个List<Contact> Contacts { get; set; }
。如何配置模型。在删除地址时删除级联?
我找到以下链接;
哪一个详细说明了一种OnDelete
方法,但是似乎没有EntityTypeBuilder<T>
?
有人可以告诉我我在做什么错吗?
OnDelete
指定在删除主体或切断关系后,如何配置删除操作以应用于删除关系中的从属实体。
它可用于ReferenceCollectionBuilder
| ReferenceReferenceBuilder
对象。在这里阅读。
解
您应该将关系定义为
entity
.HasMany(a => a.Contacts)
.WithOne(c => c.Address)
.OnDelete(DeleteBehavior.Cascade);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句