- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 php 编写的宠物项目。我的代码所做的工作之一是加载一堆 csv 文件并将它们写入具有自动生成的主键和多部分唯一键的 MySQL 表。我无法控制和检查是否已处理某些文件的方法,因此唯一 key 派上用场了。我使用 INSERT IGNORE
将数据插入到表中,当我尝试插入已经存在的数据并且一切正常时,它会默默地失败。
现在,我正在尝试使用 LINQ To Entities 在 C# 4 中创建类似的项目,但是当我尝试为表中已存在的文件中的对象调用 ObjectContext.SaveChanges()
方法时,UpdateException
作为内部异常与 SqlClient.SqlException
一起抛出。一种解决方案是将 Ignore Duplicate Keys = Yes
添加到索引中,它有点管用,但是
有没有简单优雅的方法来完成那些不涉及数据库更改的 L2E 插入???
最佳答案
另一种解决方案是这样的:
public void SaveAll( IEnumerable<Entity> entities )
{
var ids = entities.Select(x => x.Id).ToList();
var idsToRemove = context.Entities.Where(x => ids.Contains(x.Id)).Select(x => x.Id).ToList();
var entitiesToInsert = entities.Where(x => !idsToRemove.Contains(x.Id));
foreach(var entity in entitiesToInsert)
context.Entities.AddObject(entity);
}
关于c# - ObjectContext.SaveChanges 和重复的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5211573/
首先,让我自己对必须维护 VB5 代码做出强制性的尖刻评论:是的,这很可怜,但我们可以切入正题吗?谢谢。 我不得不重新审视一些在 1998 年编写并且自 2003 年以来没有被触及的非常旧的代码。我遇
我想在 EntityFrameWork 6 中使用脚手架,但得到这个: Unable to retrieve metadata for '[myNameSpace].Models.prod'. Una
为什么我打不通DbContext.ObjectContext直接地?我可以做到((IObjectContextAdapter)context).ObjectContext 我认为内部机制是这样的接口(
我们在控制台应用程序中运行一个非常简单的函数,该函数循环遍历数据库并将表列到变量中。当然,最初它做的更多,但我们将其简化为仅列出 1 个表。 我们注意到,每次创建新的 ObjectContext 时,
我在我的应用程序中定义了三个数据模型。我的问题是,如果我需要三种不同的上下文?那么三个不同的 sqlite 文件? 目前,每次我将一条记录保存到我的数据库中时,我都会执行以下操作: managedOb
这里只是一个快速的完整性检查! 如果我在实例类中有一个静态方法,例如: public class myClass { public static void AMethod() {
我在使用 EntityFramework 4.0 创建关系时出错 对数据库的更改已成功提交,但更新对象上下文时出错。 ObjectContext 可能处于不一致状态。 内部异常消息:无法检索关系“Co
我按照此处描述的方式使用 Entity Framework : Entity framework uses a lot of memory 我意识到我需要使用“using”语句才能正常工作。当我在做的
我已经使用内存分析器对此进行了检查,没有真正的实体保留在内存中但是哈希集、字典和 EntityKey 对象——但我找不到如何断开这些引用的方法。 如此简单的问题:如何阻止上下文(或其 ObjectSt
我正在创建一个委托(delegate)来检索数据库中的所有专辑记录。我在另一个项目中使用了同样的方法,但由于某种原因,这次我遇到了错误。 我错过了一步吗?我不确定为什么会出现此错误。 代码
如何更新数据存储中的所有脏实体,并将其更改的值重置为原始存储值? 方法ObjectContext.Refresh需要将要刷新的实体作为参数。 最佳答案 以下通常有效: Context.Refresh(
有没有办法保存单个跟踪对象的更改,而不是 ObjectStateManager 中的所有对象,我的意思是: ObjectContext.SaveChanges(Contact) 最佳答案 也许您可以创
我在这里做错了什么? ... using (var ctx = ObjectContextManager.GetManager("MyDataContext")) { var idsToUpd
我有一个用 php 编写的宠物项目。我的代码所做的工作之一是加载一堆 csv 文件并将它们写入具有自动生成的主键和多部分唯一键的 MySQL 表。我无法控制和检查是否已处理某些文件的方法,因此唯一 k
我使用不同的命令和不同的参数多次调用 ObjectContext.ExecuteStoreCommand,尽管我对几个命令使用相同的参数列表(对象)。我收到以下异常: System.ArgumentE
我正在使用为每个请求创建一个 ObjectContext 的概念。从技术上讲,我将 ObjectContext 实例添加到 HttpContext.Current.Items。但我不知道如何正确地杀死
我已经看到这个问题被问了一百万次,但我遇到的每一个建议似乎都已经涵盖了。 我的 MVC 解决方案中有 Entity Framework ,我有一个“存储库”,它试图检索 MyObject 的集合: p
我不太确定 Dispose 我的 ObjectContext 的正确方法是什么。这是我的设置方式: public abstract class DataManagerBase where T:Obje
我正在尝试将大量行(>10,000,000)插入 MySQL使用 EF ObjectContext(数据库优先)的数据库。看完this question的回答后我编写了这段代码(批量保存)来插入大约
我尝试在 MVC4 中级联下拉列表。我有 2 个下拉列表 1 - 类别2 - 子类别。 当用户创建新产品时,他需要选择类别,然后选择与该类别相关的子类别。我将 ajax 与杰森一起使用。 publi
我是一名优秀的程序员,十分优秀!