第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何強制實體框架插入標識列?

如何強制實體框架插入標識列?

翻閱古今 2019-10-11 11:12:03
我想編寫一些C#代碼以使用一些種子數(shù)據(jù)初始化數(shù)據(jù)庫。顯然,這將要求在插入時能夠設置各種Identity列的值的能力。我正在使用代碼優(yōu)先方法。默認情況下,DbContext處理數(shù)據(jù)庫連接,因此您不能SET IDENTITY_INSERT [dbo].[MyTable] ON。因此,到目前為止,我所做的是使用DbContext構(gòu)造函數(shù),該構(gòu)造函數(shù)允許我指定要使用的數(shù)據(jù)庫連接。然后,我設置IDENTITY_INSERT到ON該數(shù)據(jù)庫的連接,然后嘗試使用實體框架插入我的記錄。這是到目前為止我得到的一個例子:public class MyUserSeeder : IEntitySeeder {    public void InitializeEntities(AssessmentSystemContext context, SqlConnection connection) {        context.MyUsers.Add(new MyUser { MyUserId = 106, ConceptPersonId = 520476, Salutation = "Mrs", Firstname = "Novelette", Surname = "Aldred", Email = null, LoginId = "520476", Password="28c923d21b68fdf129b46de949b9f7e0d03f6ced8e9404066f4f3a75e115147489c9f68195c2128e320ca9018cd711df", IsEnabled = true, SpecialRequirements = null });        try {            connection.Open();            SqlCommand cmd = new SqlCommand("SET IDENTITY_INSERT [dbo].[MyUser] ON", connection);            int retVal = cmd.ExecuteNonQuery();            context.SaveChanges();        }        finally {            connection.Close();        }    }}如此接近卻又如此之遙-因為盡管cmd.ExecuteNonQuery()運行良好,但隨后運行時context.SaveChanges(),我被告知“當IDENTITY_INSERT設置為ON或?qū)椭朴脩粼O置為ID時,必須為表'MyUser'中的標識列指定顯式值插入NOT FOR REPLICATION身份列?!贝蟾攀且驗镸yUserId(這是MyUser表中的Identity列)是主鍵,所以context.SaveChanges()即使我為MyUser實體賦予了MyUserId屬性值,實體框架也不會在調(diào)用時嘗試設置它。有沒有辦法強迫實體框架嘗試為實體插入甚至主鍵值呢?還是一種臨時標記MyUserId為不是主鍵值的方法,以便EF嘗試將其插入?
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 594 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號