我当前的项目包括3个标准层:数据,业务和表示。我想将数据实体用于所有数据访问需求。该应用程序的部分功能将需要将平面文件中的所有数据复制到数据库中。该文件不是很大,所以我可以使用SqlBulkCopy。我发现了几篇有关.NET中SqlBulkCopy类用法的文章。但是,所有文章都使用DataTables来回移动数据。

有没有一种方法可以将数据实体与SqlBulkCopy一起使用,还是必须使用DataTables?

最佳答案

您需要将实体转换为IDataReader或DataTable。

有一个小 helper 类(class),旨在帮助您:
http://archive.msdn.microsoft.com/LinqEntityDataReader/Release/ProjectReleases.aspx?ReleaseId=389

编辑:msdn链接已损坏,可以在这里找到alt副本:
https://github.com/matthewschrager/Repository/blob/master/Repository.EntityFramework/EntityDataReader.cs

然后,您可以像这样使用SqlBulkCopy:

var sbCopy= new SqlBulkCopy(connectionString);
sbCopy.DestinationTableName = "TableName";
sbCopy.WriteToServer(entitiesList.AsDataReader());

关于c# - SqlBulkCopy和 Entity Framework ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2553545/

10-12 14:59