在遷移過程中,我如何插入到我的表中,然後檢索該標識,然後使用它將相關數據插入到另一個表中。如何在遷移過程中檢索插入的標識FluentMigrator
我現在擁有的是一個hardoced 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服務器,如果是任何幫助......
我認爲這將是微不足道的,但好像不是,google搜索它,這裏沒有任何seing應答後。
我不確定這是否適用於'fluent-migrator'的上下文中,但是你看過'@@ IDENTITY'嗎? (這是一個tsql系統函數。)http://msdn.microsoft.com/en-us/library/ms187342(v=sql.105).aspx – DMason
@DMason我知道如何在SQL中完成它,我想要什麼知道如何用FluentMigrator來做到這一點。或者如何在使用fluentmigrator插入後獲得@@ Identity選擇 –
自從我使用FluentMigrator代碼以來,我已經有一段時間了,但在快速瀏覽之後,我看不到一種方法來執行此操作,所以它必須是一個新功能。我不確定您對代碼的熟悉程度,但您可以對https://github.com/schambers/fluentmigrator/blob/master/src/FluentMigrator.Runner/Generators/SqlServer/SqlServerQuoter.cs進行更改類,如果你放入@@ IDENTITY,它不會嘗試把它當作一個字符串。 – Castrohenge