我创建了BulkInsert方法,如下所示:
public void BulkInsertUsers(IEnumerable<tblUsers> users)
{
using (var ctx = new Entities())
{
ctx.BulkInsert(users);
ctx.SaveChanges();
}
}Mu问题是ctx.BulkInsert(users);返回错误:
在上下文'Infrastructure.EF.tblUser‘中找不到'Infrastructure.EF.Entities’类型
在调试模式下,当我展开ctx变量时,我发现一些实体的值如下:
System.Data.Entity.DbSet<Automation.Infrastructure.EF.EntityName>其他一些有:
SELECT
[Extent1].[ID] AS [ID],
[Extent1].[Name] AS [Name],
FROM [dbo].[tbl] AS [Extent1]对于具有SELECT值的实体,BulkInsert工作得很好。我在用
EntityFramework.BulkInsert,Version=6.0.2.8
发布于 2017-08-30 12:01:35
您正在尝试将实体Users添加到Entities上下文中。见下文
public void BulkInsertUsers(IEnumerable<tblUsers> users)
{
using (var ctx = new tblUsers())
{
// users is detached from database, so we need to add it
ctx.Attach(users);
// Specify that these are modified entities (may not be necessary for BulkInsert)
// I don't know what properties users contain, so used Name
ctx.Entry(tblUsers).Property(a => a.Name).IsModified = true;
ctx.BulkInsert(users);
ctx.SaveChanges();
}
}想点什么..。您可以为BulkInsert不同的实体创建一个通用方法。这可能对你有帮助:A generic way to save an entity in Entity Framework
https://stackoverflow.com/questions/45958489
复制相似问题