如何处理EF中用于复制的rowguid

本文关键字:用于 复制 rowguid EF 何处理 处理 | 更新日期: 2023-09-27 17:54:34

我有一些麻烦,试图在我们的数据库中[INSERT/UPDATE]记录,因为我们已经实现了复制场景。(SQL SERVER 2012)

当我尝试保存一个实体时,我得到这些消息:

不允许使用rowguidcol属性更新列。

事务在触发器中结束。

有时这个

不能在对象'dbo '中插入重复的键行。具有唯一索引"MSmerge_index_1345596032"的作业。重复键值为(0000000 -0000000 -0000000 -000000000000)。

我有点失去了如何生成edmx模型,没有它在实体中有rowguid。

保存

的模式
        var entry = db.Entry(job);
        entry.State = (job.JobId == 0) ? EntityState.Added : EntityState.Modified;
        db.SaveChanges();
        return entry.Entity.JobId;

我如何使用Ef和复制而不疯狂的rowguid?

更新:

我在模态浏览器中设置了StoreGeneratedPattern的rowguid属性到Identity,它似乎又起作用了,但我不知道这样做的影响。

用EF处理Replication的最好方法是什么?

如何处理EF中用于复制的rowguid

您的开发数据库不能配置为复制场景,您应该能够映射没有rowguid列的数据库,向DBA请求数据库备份,然后在不保留复制设置的情况下恢复它。使用rowguid

的实体框架更新表

尝试更改您的模型图(.edmx),其中您必须将StoreGeneratedPattern属性从"None"更改为"Computed"。