我有下表:
public class Category
{
public int Id{ get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
public Category Parent { get; set; }
}
使用以下映射:
public class CategoryMap: IEntityTypeConfiguration<Category>
{
public void Configure(EntityTypeBuilder<Category> builder)
{
builder.ToTable(nameof(Category));
builder.Property(x => x.Id).UseHiLo();
//other properties
}
}
现在我想使用 fluentmigrator 创建两个新条目。但条目是相关的。第二类以第一类为父类。我怎样才能实现它?
我不能使用 fluentmigrator,因为我没有 ID
Insert
.IntoTable("Category")
.Row(new
{
Name = "Category1"
});
Insert
.IntoTable("Category")
.Row(new
{
Name = "Category2",
ParentId = 0 //Category1?
});
我可以写一个 sql 查询,但我仍然没有 ID。我可以使用随机 ID,但它可能以 HiLo 算法中的问题结束。
Insert Into Category
(
[Id],
[Name],
[ParentId]
)values(
0, //?
'Category1',
null
)
我可以使用:
SELECT @@IDENTITY
SELECT IDENT_CURRENT('Category')
但我使用 HiLo 算法来创建 Id。应该有可能以某种方式为我的插入脚本获取下一个 HiLo 值并使用它。还是有更好的方法来实现它?