最近做一个项目,因为是重构,好多代码是搬过来的,但是因为框架不同,所以搬过来也出现了很多问题,前几天在调试的时候,就碰到一个EF框架经常出现的问题:ObjectStateManager中已存在具有同一键的对象.ObjectStateManager无法跟踪具有相同键的多个对象. 为什么会报这个错呢? 一般这个问题会出现在EF更新数据库时.我查了很多资料,大致产生这个问题的原因是当前上下文中已经包含了这一条记录,而且是出于被跟踪状态,所以不能再附加具有相同键的对象,通俗点解释就是:出错这个错误是因为…
今天编码过程中遇到这个问题,用EF 更新数据库,将组织好的数据传递到ef的上下文中,本以为附加上去更新,一切就ok了,不过事实证明没这么顺利 --------------------------------------------- ObjectStateManager 中已存在具有同一键的对象.ObjectStateManager 无法跟踪具有相同键的多个对象 --------------------------------------------- 看了很多博文,总结原因是当前上下文中已经包…
问题:ObjectStateManager 中已存在具有同一键的对象.ObjectStateManager 无法跟踪具有相同键的多个对象. 解决方案:在查询的时候加上AsNoTracking()就ok了,AsNoTracking()禁止EF跟踪 db.Category.AsNoTracking().SingleOrDefault(m=>m.CategoryId==cc.CategoryId);…
一个例子: 一个简单的 登陆界面,有用户名.密码文本框.登陆按钮.  想要实现的效果是,用户输入用户名之后,点击Enter键进入到下一个文本框,同理,输入完密码之后,登陆按钮获得焦点,再次点击Enter键会登陆. 实现: 加一个文本框事件:enter 在里面写方法就行: private void enter(object sender, KeyPressEventArgs e)         {//回车跳转             if (e.KeyChar == 13)//其他方式:e.Ke…
EF Core 日志跟踪sql语句 官方文档链接:https://docs.microsoft.com/en-us/ef/core/miscellaneous/logging 1.新增自定义ILoggerProvider实现类 public class EFLoggerProvider : ILoggerProvider { public ILogger CreateLogger(string categoryName) => new EFLogger(categoryName); public…
把主键从long 改为int 居然要删掉重建,不知道有没有更好的办法. 删除带外键的表: Add-Migration name 修改生成的文件,主要把dbo.删除 然后update-database…
在entity framework core中,如果两个实体涉及到外键连接,查询的时候默认是只查自身而不会去查询外键表的.如果想要让查询结果包含外键实体,则需要使用include方法来让查询结果包含外键实体.如 _dbContext.ProductStandard.Include(o=>o.Product).SingleOrDefault(o => o.Id == id); 这个例子中,Product的Id和 ProductStandard的ProductId字段进行外键连接,想要让查询出来的…
在Dbcontext中作如下添加: protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<bbsUsersEntity>().Property(e => e.UserId). HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); }…
“无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象”,这是在EF中,一对多关系表,有外键的类保存至数据库中出现的错误. 我原来是用JAVA开发的,习惯性的处理一对多中类与类的关系,在C#里也是这样处理的.下面是个简单的一对多关系C#里的实现(先数据库,后VS生成代码): public class ObjectA{ public int ID{set;get;} public int objectbid{set;get;}//数据库生成 public Objec…