相关疑难解决方法(0)

来自sql查询执行实体框架的匿名类型结果

我使用实体框架5.0与.net framework 4.0代码的第一种方法.现在我知道我可以通过以下方式在实体框架中运行原始sql

var students = Context.Database.SqlQuery<Student>("select * from student").ToList();
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我想要的是返回匿名结果.例如,我只想要学生表中的特定列,如下所示

var students = Context.Database.SqlQuery<Student>("select FirstName from student").ToList();
Run Code Online (Sandbox Code Playgroud)

它不起作用.它给了例外

数据读取器与指定的"MyApp.DataContext.Student"不兼容.类型为"StudentId"的成员在数据读取器中没有具有相同名称的相应列.

所以我尝试过dynamic类型

var students = Context.Database.SqlQuery<dynamic>("select FirstName from student").ToList();
Run Code Online (Sandbox Code Playgroud)

它也不起作用,它返回一个空对象.没有数据可用.

有没有办法从动态SQL查询中获取匿名类型结果?

c# sql entity-framework anonymous-types

30
推荐指数
3
解决办法
5万
查看次数

使用实体框架更新时获取“插入”输出

SQL Server 使用“inserted”关键字提供插入和更新记录的输出。

我有一个代表处理队列的表。我使用以下查询来锁定记录并获取锁定记录的 ID:

UPDATE TOP (1) GlobalTrans
SET LockDateTime = GETUTCDATE()
OUTPUT inserted.ID
WHERE LockDateTime IS NULL
Run Code Online (Sandbox Code Playgroud)

这将输出一个名为 ID 的列,其中包含所有更新的记录 ID(在我的例子中为单个 ID)。如何将其转换为 C# 中的 EF 来执行更新并取回 ID?

c# t-sql entity-framework entity-framework-6

6
推荐指数
1
解决办法
2684
查看次数