首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ComplexType创建BulkInsert实体

使用ComplexType创建BulkInsert实体
EN

Stack Overflow用户
提问于 2016-10-04 18:28:16
回答 2查看 461关注 0票数 2

如何使用ComplexType及时插入多个实体?

请考虑以下几点:

代码语言:javascript
复制
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()也没有帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-10-04 21:05:16

您可以使用实体框架扩展库轻松做到这一点。

举个例子:

代码语言:javascript
复制
//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" });

这是链接:

票数 0
EN

Stack Overflow用户

发布于 2016-10-04 22:18:13

免责声明:我是Entity Framework Extensions项目的所有者

此库允许批量插入(具有复杂类型),但也允许所有其他批量操作。

  • BulkSaveChanges
  • BulkInsert
  • BulkUpdate
  • BulkDelete
  • BulkMerge

示例

代码语言:javascript
复制
// Bulk Insert
context.BulkInsert(complexTypeEntities);

// Easy to use
context.BulkSaveChanges();

// Easy to customize
context.BulkSaveChanges(bulk => bulk.BatchSize = 100);

库支持所有类型的继承和关联,但库并不是免费的。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39849934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档