Slava Podolskiy Asked:2020-12-15 22:58:28 +0000 UTC2020-12-15 22:58:28 +0000 UTC 2020-12-15 22:58:28 +0000 UTC 在代码优先中调用存储过程 772 晚上好!我首先使用实体框架代码。 通过 SQL Server 对象资源管理器创建存储过程。 我现在如何通过上下文调用它? 以前,当使用 DB First 时,可以像普通方法一样通过上下文调用存储过程。如何首先使用代码实现这一目标? sql 1 个回答 Voted Best Answer Alexander Petrov 2020-12-16T01:33:45Z2020-12-16T01:33:45Z 在 Code First 方法中使用存储过程必须手动组织。为此,使用方法SqlQuery- 执行返回数据的查询, - 或ExecuteSqlCommand- 执行命令。 例如,要使用返回特定年龄的人列表的GetPeople参数调用存储过程,您需要创建一个模型类来接受数据(或使用现有类,如果合适的话):Age public class PersonInfo { public int Id { get; set; } public string Name { get; set; } // другие необходимые свойства } 现在你可以调用存储如下: string sql = @"GetPeople {0}"; var people = context.Database.SqlQuery<PersonInfo>(sql, 42); foreach (var personInfo in people) { ... } 当然,为了方便使用,可以在context类中定义一个方法: public class Context : DbContext { public DbRawSqlQuery<PersonInfo> GetPeople(int age) { var sql = @"GetPeople {0}"; return Database.SqlQuery<PersonInfo>(sql, age); } } 然后您可以像这样调用存储过程: var people = context.GetPeople(42);
在 Code First 方法中使用存储过程必须手动组织。为此,使用方法
SqlQuery- 执行返回数据的查询, - 或ExecuteSqlCommand- 执行命令。例如,要使用返回特定年龄的人列表的
GetPeople参数调用存储过程,您需要创建一个模型类来接受数据(或使用现有类,如果合适的话):Age现在你可以调用存储如下:
当然,为了方便使用,可以在context类中定义一个方法:
然后您可以像这样调用存储过程: