dotnetcore / FreeSql

🦄 .NET aot orm, C# orm, VB.NET orm, Mysql orm, Postgresql orm, SqlServer orm, Oracle orm, Sqlite orm, Firebird orm, 达梦 orm, 人大金仓 orm, 神通 orm, 翰高 orm, 南大通用 orm, 虚谷 orm, 国产 orm, Clickhouse orm, QuestDB orm, MsAccess orm.
http://freesql.net
MIT License
3.99k stars 842 forks source link

1对1模式下,如果两个实体类的主键都设置了Id自增,会在保存的时候抛出异常 提示Id有值。 #1765

Open yangf85 opened 1 month ago

yangf85 commented 1 month ago

要怎么处理?

问题描述及重现代码:

// c# code
 public class PersonEntity
 {
     [Column(IsPrimary = true, IsIdentity = true)]
     public int Id { get; set; }

     [Column(Position = 4)]
     public int Age { get; set; } = Random.Shared.Next(1, 36);

     [Column(Position = 3)]
     public Gender Gender { get; set; }

     [Column(Position = 2)]
     public string Name { get; set; }

     [Navigate(nameof(Id))]
     public OrderEntity Order { get; set; }
 }
public class OrderEntity
{
    [Column(IsPrimary = true, IsIdentity = true)]
    public int Id { get; set; }

    public string Number { get; set; }

    [Navigate(nameof(Id))]
    public PersonEntity Person { get; set; }

    [Navigate(nameof(Id))]
    public SummaryEntity Summary { get; set; }

    [Navigate(nameof(PartEntity.OrderId))]
    public List<PartEntity> Parts { get; set; }

    public string Notes { get; set; }
}

数据库版本

安装的Nuget包

.net framework/. net core? 及具体版本

image

2881099 commented 1 month ago

一对一,怎么会两边同时自增。