用户定义位置的SQL Server CE数据库生成

时间:2018-08-27 12:59:43

标签: c# entity-framework sql-server-ce repository-pattern

我正在使用代码优先的数据库并已生成迁移,我能够在用户定义的位置生成SQL Server CE数据库,能够使用EF向数据库添加和更新实体。

但是当我尝试删除实体时,出现此异常:

  

附加类型为'Dbmodel'的实体失败,因为相同类型的另一个实体已经具有相同的主键值。

如果图中的任何实体具有相互冲突的键值,则使用“附加”方法或将实体的状态设置为“不变”或“修改”时,可能会发生这种情况。

这可能是因为某些实体是新实体,尚未收到数据库生成的键值。

在这种情况下,请使用“添加”方法或“已添加”实体状态来跟踪图形,然后根据需要将非新实体的状态设置为“未更改”或“已修改”。”

删除后

Context.Set<TEntity>().Attach(entity);

我遇到异常

  

无法删除该对象,因为在ObjectStateManager中找不到该对象。

我正在使用以下代码更新dbcontext

var dbcontext = new MyDbContext(connectionString);
return dbcontext;

connectionstring是用户定义的位置和用户定义的数据库名称

0 个答案:

没有答案