gpt4 book ai didi

c# - 无法读取 Entity Framework 中的系统 View

转载 作者:太空狗 更新时间:2023-10-29 21:56:56 24 4
gpt4 key购买 nike

我正在尝试执行以下查询

  SELECT object_id 
FROM sys.tables
WHERE sys.tables.name = 'Projects'

作为

int n = context.Database.SqlQuery<int>(
"SELECT object_id from sys.tables where sys.tables.name = 'Projects'")
.FirstOrDefault();

我一如既往地得到 n 0

如果我使用 SqlConnection 并使用 SqlCommand 查询它,我会得到正确的结果。那么,为什么 DbContext.Database.Connection 不让我执行纯 SQL 查询?

为简单起见,我删除了 SqlParameter,因此我知道这段代码不是 SQL 注入(inject)安全的。

最佳答案

系统 View 没有问题,Entity Framework无法读取SqlQuery中的值类型。所以我不得不改变它,

public class SingleValue<T>{
public T Value {get;set;}
}

int n = context.Database.SqlQuery<SingleValue<int>>(
"SELECT object_id as Value from sys.tables where sys.tables.name = 'Projects'")
.ToList().Select(x=>x.Value).FirstOrDefault();

关于c# - 无法读取 Entity Framework 中的系统 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com