如何使用Entity Framework一次执行多个SQL命令?

时间:2013-03-10 14:06:34

标签: entity-framework

我有以下代码:

var sql = System.IO.File.ReadAllText("data_tables.sql");
context.Database.ExecuteSqlCommand(sql);

我的data_tables.sql脚本包含SQL语句,例如:

SET IDENTITY_INSERT Application ON
INSERT INTO Application(ApplicationId, Name) VALUES (1, 'xxxx');
SET IDENTITY_INSERT Application OFF
DBCC CHECKIDENT( 'Application', RESEED )

我可以将这些文件放入类中并执行命令,而不是从文件中读取。我正在寻找的是一次执行所有命令的方法。

2 个答案:

答案 0 :(得分:0)

您可以使用EntityFramework.Extended使用.Future查询来实现此目的。

// build up queries
var q1 = db.Users
    .Where(t => t.EmailAddress == "one@test.com")
    .Future();

var q2 = db.Tasks
    .Where(t => t.Summary == "Test")
    .Future();

// this triggers the loading of all the future queries
var users = q1.ToList();

答案 1 :(得分:-1)

实体框架的存在是为了让您更轻松地将数据从数据库获取到UI并返回,以及使用LINQ或扩展方法查询数据。如果您的SQL语句列表与此有关,那么进行某种转换可能是有利的。但是,如果您只是执行预先准备的SQL语句的“干”列表,那么我认为您当前的设置没有问题。

这与您尝试做的事情有很大关系,如果没有更多信息,很难提出策略。