在迁移过程中,我如何插入到我的表中,然后检索ID,然后使用它在另一个表中插入相关数据。
我现在所拥有的是一个要插入的硬拷贝ID,但我不知道当我进行迁移时它会是什么。
var contactId = 2;
var phoneNumber = 2;
Insert.IntoTable("Contacts")
.WithIdentityInsert()
.Row(new
{
Id = contactId,
TimeZoneId = contact.TimeZoneId,
contact.CultureId,
Type = (byte)(int)contact.Type,
Email = contact.Email.ToString(),
EntityId = entityId
});
Insert.IntoTable("PhoneNumbers")
.WithIdentityInsert()
.Row(new
{
Id = phoneNumberId,
phone.Number,
Type = (byte)(int)phone.Type,
ContactId = contactId
});
我希望能够检索插入的ID并将其用于第二次插入,而不是将其编码。
我使用SQL Server,如果有任何帮助......
我认为这将是微不足道的,但在谷歌搜索之后似乎不是,而不是在这里找到任何答案。
答案 0 :(得分:2)
您可以在.WithInsertIdentity()
电话结束后通过链接.Row()
来手动插入ID。
这将使您可以将其保留在内存中,以便在其他对象中用作外键。不幸的是,在Up()
或Down()
方法中的所有代码完成执行之前,FluentMigrator实际上并不执行任何SQL。
答案 1 :(得分:0)
对于相同的情况,我在sql-query中使用Execute.Sql()
和@@IDENTITY