c# - 具有 ComplexType 的 BulkInsert 实体

标签 c# entity-framework entity-framework-6

如何及时插入具有复杂类型的多个实体?

考虑以下几点:

public class Entity {
  public Address Address { get; set; }
}

[ComplexType]
public class Address {
  [ColumnName("Street")]
  public string Street { get; set; }
}

我试过了 SqlBulkTools忽略嵌套属性。 .CustomColumnMapping(x => x.Address.Street, "Street").AddColumn(x => x.Address.Street) 都没有崩溃但是没有'实际上也做任何事情。

我还尝试了 EntityFramework.BulkInsert-ef6,它被 ComplexTypes 弄糊涂了,并且崩溃了。

即使在关闭 ValidateOnSaveEnabled 和 AutoDetectChangesEnabled 的情况下,一个接一个地执行插入操作也需要很长时间。创建新上下文并使用大量 DbContext.SaveChanges() 也无济于事。

最佳答案

您可以使用 Entity Framework 扩展库轻松做到这一点。

举个例子:

//update all Entities with Street of MyStreet to Street of YourStreet
context.Entities 
    .Where(t => t.Address.Street == "MyStreet")
    .Update(t => new Entity { t.Address.Street = "YourStreet" });

这是链接:Entity Framework Extended Library

关于c# - 具有 ComplexType 的 BulkInsert 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39849934/

相关文章:

c# - 重现异常:指定的参数超出有效值范围。参数名称:索引

c# - 在 Razor View 中使用内部类

c# - 在 ASP.NET Core 中搭建现有数据库(Scaffold-DbContext)

c# - 改进大型EF多级包含的性能

entity-framework-6 - 在程序集 EF6 中找不到上下文类型

c# - 将传递的字符串参数引用到分部 View

c# - 实例化时属性 InvalidDataException

c# - 在多对多 Entity Framework 关系中保留外键列表

ASP.net vNext 和 Entity Framework 6

entity-framework - PLINQ 到 Entity Framework : why shouldn't it be used?