gpt4 book ai didi

c# - 是否可以使用 EF7 执行自定义 SQL 查询

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

我决定将我的一个项目转移到 Entity Framework 7 (rc1-final)。我的目标是 SQL Server 和 EntityFramework.MicrosoftSqlServer软件包也已安装。

我只有一个问题:似乎我无法执行自定义 SQL 查询以从数据库中获取一些对象。

DatabaseFacade对象(可以通过 DbContext.Database 属性访问)提供扩展方法 ExecuteSqlCommand (什么都不返回),但它不提供 SqlQuery<T>允许获取对象的方法。这两种方法在旧的 EF 6 中都可用,但新的 EF 7 只声明了第一个。

所以,是 SqlQuery<T>方法仍然存在(但已移动/重命名)还是已从新的 EF 实现中完全删除?

当然,绝对有可能以冗长的方式解决它(使用 SqlCommand 及其 ExecuteReader 方法),但我宁愿避免它。

最佳答案

EntityFramework.Relational公开以下扩展方法;

public static IQueryable<TEntity> FromSql<TEntity>(
[NotNull] this IQueryable<TEntity> source,
[NotNull] [NotParameterized] string sql,
[NotNull] params object[] parameters)
where TEntity : class

所以你可以这样做;

myDatabaseContext.Customers.FromSql("SELECT * FROM Customers WHERE Name='p0'", "timothy");

关于c# - 是否可以使用 EF7 执行自定义 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34326956/

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