这是一个模型;
public class Urunler
{
public int UrunlerID { get; set; }
public virtual Urunler Urun { get; set; }
[NotMapped]
public List<int> SelectedEtiketIds { get; set; }
public virtual List<UrunEtiketTablo> Etiketler { get; set; }
}
这是一个代码;
if (model.SelectedEtiketIds != null)
{
if (model.Etiketler != null)
{
if (model.Etiketler.Count > 0)
{
model.Etiketler.Where(i => !model.SelectedEtiketIds.Contains(i.UrunEtiket.EtiketID)).ToList().ForEach(i => model.Etiketler.Remove(i));
List<int> existlbl = model.Etiketler.Select(i => i.UrunEtiket.EtiketID).ToList();
db.Etikets.Where(i => model.SelectedEtiketIds.Except(existlbl).Contains(i.EtiketID)).ToList().ForEach(i => model.Etiketler.Add(new UrunEtiketTablo { UrunEtiket = i }));
}
else
{
db.Etikets.Where(i => model.SelectedEtiketIds.Contains(i.EtiketID)).ToList().ForEach(i => model.Etiketler.Add(new UrunEtiketTablo { UrunEtiket = i }));
}
}
else
{
model.Etiketler = db.Urunlers.Where(i => i.UrunlerID == model.UrunlerID).Select(i => i.Etiketler).FirstOrDefault();
db.Etikets.Where(i => model.SelectedEtiketIds.Contains(i.EtiketID)).ToList().ForEach(i => model.Etiketler.Add(new UrunEtiketTablo { UrunEtiket = i }));
}
}
else
{
if (model.Etiketler !=null && model.Etiketler.Count > 0)
{
model.Etiketler.Clear();
}
}
db.Entry(model).State = EntityState.Modified; //error line
}
db.SaveChanges();
return RedirectToAction("Urunler", "DaimiPanel");
当我添加项目到电子邮件列表,我得到这个错误。
附加“Tasarito. Models. UrunEtiketTablo”类型的实体失败,因为另一个相同类型的实体已经具有相同的主键值。如果图中的任何实体具有冲突的键值,则使用“附加”方法或将实体的状态设置为“未更改”或“修改”时可能会发生这种情况。这可能是因为某些实体是新的并且尚未收到数据库生成的键值。在这种情况下,使用“添加”方法或“添加”实体状态来跟踪图,然后根据需要将非新实体的状态设置为“未更改”或“修改”。
这是交叉表;
public class UrunEtiketTablo
{
public int UrunEtiketTabloID { get; set; }
public virtual Etiket UrunEtiket { get; set; }
}
我哪里会犯错?泰。
我发现了同样的问题,就我而言,我只是更改了代码
db.Entry(model).State = EntityState.Modified; //error line
进入
db.Set<YourModel>().AddOrUpdate(model);
它工作正常。希望它也能解决你的问题。
我在代码中偶然发现了一个奇怪的bug。以前是有效的,但现在有时也有效。 我正在使用EF6编辑具有某些关系的实体。为了不编辑关系,我“附加”了它们(参见示例代码)。 我编辑了这些名字以保持简单。 以下行 抛出此错误: 附加类型为“C”的实体失败,因为相同类型的另一个实体已具有相同的主键值。如果图形中的任何实体具有冲突的键值,则在使用“Attach”方法或将实体状态设置为“Unchanged”或“Mo
简而言之,在发布包装器模型并将一个条目的状态更改为“已修改”期间引发异常。更改状态之前,状态设置为“已分离”,但调用Attach()会引发相同的错误。我正在使用EF6。 请在下面找到我的代码(型号名称已更改以便于阅读) 模型 控制器 如上图所示 引发异常: 附加类型为“A”的实体失败,因为相同类型的另一个实体已具有相同的主键值。如果图形中的任何实体具有冲突的键值,则在使用“Attach”方法或将实
错误消息: 正在附加“FaridCRMData”类型的实体。模型。“Customer”失败,因为相同类型的另一个实体已具有相同的主键值。如果图形中的任何实体具有冲突的 我的代码: FactorService. BaseService.cs:
我一直在搜索这个主题,但没有找到我想要的。基本上,我开始用UML的所有东西,用例,类图来计划一个项目。然后我们决定使用ASP。NET MVC。该应用程序是一种O-Desk或Elance 我有用户,承包商,公司,主持人和管理员。 我有点困惑模型应该如何表示这个用户,以及如何使用asp设置权限和角色。net mvc特性。 在一个正常的应用程序中,我会为他们每个人都创建一个类,他们可能会扩展User,其
我们正在开发具有移动部分和网络用户界面的应用程序。Web UI使用角,我们在后端配置cors时遇到了问题。我们的代码如下(只是对我们的问题很重要的代码): 从stackoverflow上的文档和其他帖子来看,这应该是可行的,但不是。我们错过了什么? thnx 编辑: 这是邮递员的请求: 卷曲'https://guw.azurewebsites.net/api/token'-X OPTIONS-H'
我的WebApi应用程序有一个小问题。当我将新实体添加到我的数据库时,会出现这个问题。 实体: 要在其中向数据库中添加新赌注实体的代码: 在此位置,将我的实体添加到DB中(DB:我的SQL) 调用save方法时,代码会引发以下异常: 附加“WebCar. Domain. Entities. Lot”类型的实体失败,因为另一个相同类型的实体已经具有相同的主键值。如果图形中的任何实体具有冲突的键值,则