将相同的Guid密钥插入两个数据库中的两个不同的表中

时间:2013-11-26 10:16:48

标签: c# sql-server entity-framework

我在两个数据库中有两个表APP,我想在两个数据库中获得相同的App标识符,但是当我将应用程序插入第一个数据库并将其插入第二个数据库时,我生成了一个新的Guid(如果我在我的列中指定了默认值)或null guid。

这是我在数据库的两个表中插入应用程序的代码:

 app.Id_App = Guid.NewGuid();
            app.DateAdded = DateTime.Now;
            app.PublisherId_advertiserPublisher = id_publisher;
            db.AppSet.AddObject(app);
            db.SaveChanges();

            //add app to db2


            App2 appDB2 = new App2()
            {
                App_link=app.App_link,
                Id_app= app.Id_App,                   
                CategoryId_cat=app.CategoryId_cat,
                Description=app.Description,
                keywords=keywords.Key_word,             
            };
       DB2.App.AddObject(appDB2);
            pushDB.SaveChanges();

我已经将表定义中的rowGuid改为否。 我错过了什么吗?有没有更好的方法在两个不同的数据库中获得相同的guid密钥? 感谢。

1 个答案:

答案 0 :(得分:1)

如果您最初指定Id_app应该是数据库生成的,那么将其更改为DatabaseGenerated.None,实体框架不会发出sql来更改基础表。您将需要删除并重新创建表,或在数据库中手动更改它或创建自定义迁移。

参考文献:

Drop identity using entity framework

Switch IDENTITY on/off with custom migration

Migrations: does not detect changes to DatabaseGeneratedOption - 您可以在此处的未来版本中投票支持