如何使用ComplexType及时插入多个实体?
请考虑以下几点:
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()也没有帮助。
发布于 2016-10-04 21:05:16
您可以使用实体框架扩展库轻松做到这一点。
举个例子:
//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" });这是链接:
发布于 2016-10-04 22:18:13
免责声明:我是Entity Framework Extensions项目的所有者
此库允许批量插入(具有复杂类型),但也允许所有其他批量操作。
示例
// Bulk Insert
context.BulkInsert(complexTypeEntities);
// Easy to use
context.BulkSaveChanges();
// Easy to customize
context.BulkSaveChanges(bulk => bulk.BatchSize = 100);库支持所有类型的继承和关联,但库并不是免费的。
https://stackoverflow.com/questions/39849934
复制相似问题