3
实体框架核心中的强类型ID
我正在尝试创建一个强类型的Id类,该类现在在内部保持“ long”。实施如下。我在实体中使用此控件时遇到的问题是,实体框架向我发送一条消息,指出属性ID已映射到其上。请参阅IEntityTypeConfiguration下面的内容。 注意:我的目标不是严格的DDD实现。因此,在评论或回答时请记住这一点。键入后的整个id Id是供开发人员进入的项目,他们被强烈键入要在其所有实体中使用Id,当然可以转换为long(或BIGINT)-但对于其他人则很清楚。 在类和配置下面,这不起作用。可以在https://github.com/KodeFoxx/Kf.CleanArchitectureTemplate.NetCore31中找到该存储库, Id上的课程(现在已注释掉):https : //github.com/KodeFoxx/Kf.CleanArchitectureTemplate.NetCore31/blob/master/Source/Common/Kf.CANetCore31/DomainDrivenDesign/Id.cs Entity和ValueObject类(Entity属性Id的类型为Id.cs(在上面):https : //github.com/KodeFoxx/Kf.CleanArchitectureTemplate.NetCore31/tree/master/Source/Common/Kf.CANetCore31/DomainDrivenDesign 可在以下位置进行配置:https : //github.com/KodeFoxx/Kf.CleanArchitectureTemplate.NetCore31/tree/master/Source/Infrastructure/Persistence/Kf.CANetCore31.Infrastructure.Persistence.Ef/EntityTypeConfigurations Id类实现(现在标记为过时,因为在找到解决方案之前我放弃了这个想法) namespace Kf.CANetCore31.DomainDrivenDesign { [DebuggerDisplay("{DebuggerDisplayString,nq}")] [Obsolete] public sealed class Id : ValueObject { public static implicit operator Id(long value) => new Id(value); public static implicit operator long(Id value) => value.Value; public static implicit operator Id(ulong value) …