我在ASP.Net MVC项目中使用EntityFramework 我的解决方案中有3个项目:
我有2个课程:
我使用 Unity 进行依赖注入。 当我想创建文件夹时,我希望Id User将User与文件夹相关联。 所以在我的课程文件夹中,我有这个归因于建立关系:
public virtual User user {get; set; }
当我想在DB中添加文件夹时,我在此行中出错:
_dbSet.Add(entity);
错误是: System.InvalidOperationException:' IEntityChangeTracker的多个实例无法引用实体对象。'
这是方法
public void Insert(TEntity entity)
{
if (entity == null)
throw new ArgumentNullException("entity");
try
{
_dbSet.Add(entity);
_dbContext.SaveChanges();
}
catch (DbEntityValidationException ex)
{
ThrowValidationError(ex);
}
}
这是我的课上下文
public class Context : DbContext
{
private string NameServer { get; set; }
private string NameDatabase { get; set; }
// Name tables
public DbSet<User> User{ get; set; }
public DbSet<Folder> Folder{ get; set; }
public Context()
{
this.NameServer = ServicesValues.cnameserver;
this.NameDatabase = ServicesValues.cnamebdd;
this.Database.Connection.ConnectionString = "Server=" + NameServer + "; Database=" + NameDatabase + "; Integrated Security = true";
}
我想我不会使用相同的DbContext,但我不知道在使用多个实体(用户和文件夹)时如何保持相同的DbContext
我认为我的用户存在于DBContext的其他实例
中