首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架BulkInsert

实体框架BulkInsert
EN

Stack Overflow用户
提问于 2017-08-30 10:50:11
回答 1查看 112关注 0票数 0

我创建了BulkInsert方法,如下所示:

代码语言:javascript
复制
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变量时,我发现一些实体的值如下:

代码语言:javascript
复制
System.Data.Entity.DbSet<Automation.Infrastructure.EF.EntityName>

其他一些有:

代码语言:javascript
复制
SELECT 
    [Extent1].[ID] AS [ID], 
    [Extent1].[Name] AS [Name], 
FROM [dbo].[tbl] AS [Extent1]

对于具有SELECT值的实体,BulkInsert工作得很好。我在用

EntityFramework.BulkInsert,Version=6.0.2.8

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-30 12:01:35

您正在尝试将实体Users添加到Entities上下文中。见下文

代码语言:javascript
复制
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

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

https://stackoverflow.com/questions/45958489

复制
相关文章

相似问题

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