相关疑难解决方法(0)

如何查看实体框架生成的SQL?

如何查看实体框架生成的SQL?

(在我的特殊情况下,我正在使用mysql提供程序 - 如果它很重要)

ado.net entity-framework

587
推荐指数
18
解决办法
29万
查看次数

从LINQ到SQL获取SQL查询?

我有一个查询,我byte[]作为参数传递.我试图从中获取SQL查询并在管理工作室中运行该查询以进行调试.如何从中提取SQL语句?

 committeeMember =
           db.Committee_Member.FirstOrDefault(x => x.Customer_Number == activity.Contact.Number
           && x.Position_Start_Date.Value.Year == activity.EndDate
           && x.Committee_Id == activity.Committee.Id && x.Cancelled != 1);
Run Code Online (Sandbox Code Playgroud)

.net c# linq-to-sql

39
推荐指数
2
解决办法
7万
查看次数

如何使用Entity Framework 7记录查询?

我在夜间构建频道上使用Entity Framework 7(现在我正在使用版本EntityFramework.7.0.0-beta2-11524)并且我试图仅仅出于好奇而记录EF生成的查询.

我正在编写一个简单的控制台程序,我尝试使用 EF6 相同的日志记录技术,但DbContext.Database.Log在Entity Framework 7上不可用.有没有办法记录或只是看看EF7生成的SQL?

entity-framework entity-framework-core

13
推荐指数
4
解决办法
1万
查看次数

如何让 EntityFrameworkCore 生成的 SQL 为 DateTime 对象使用正确的格式?

我正在使用Microsoft.EntityFrameworkCore.SqlServer v2.1.2(并且也尝试过 v2.2.0-preview1-35029)并使用 LINQ 从 Azure SqlServer 数据库中获取实体集合,在 DateTime 字段上进行过滤。

但是,由 LINQ 语句生成的 SQL 使用基于字符串的 DateTime 值,SqlServer 拒绝此错误:

从字符串转换日期和/或时间时转换失败。

我可以修改 SQL 语句以更改日期时间格式,以便查询正常工作(有关详细信息,请参见下文),但我不知道如何让框架生成相同的日期时间格式。

虽然 EntityFrameworkCore 仍然有点新,但似乎这是一个非常简单的用例,所以我假设我做错了什么,这不是框架问题。

如何防止 EF 在 SQL 中生成无效的日期时间值?

和/或

如何让生成的 SQL 为 DateTime 对象使用另一种格式?


我正在使用的 EntityFramework 模型如下所示:

public class DeskReading
{
    public int DeskReadingId { get; set; }
    //... some other fields ...
    public DateTime Timestamp { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的 LINQ 查询值如下所示:

IQueryable<DeskReading> readings = 
    _dbContext.DeskReadings
            .OrderBy(gr => gr.Timestamp)
            .Where(gr => gr.Timestamp > new …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework-core

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

.NET Core 3 / EF.Core 3:`QueryModelGenerator`、`RelationalQueryModelVisitor` 等发生了什么

我不知道发生了什么事:QueryModelGeneratorRelationalQueryModelVisitorqueryCompilationContext.CreateQuerymodelVisitor()一切似乎都烟消云散了。

我有以下代码,但我无法尝试将其从 2.2 转换为 .NET Core 3

public static string ToSql<TEntity>(this IQueryable<TEntity> query, DbContext dbCtx)
{
    var modelGenerator = dbCtx.GetService<IQueryModelGenerator>();
    var queryModel = modelGenerator.ParseQuery(query.Expression);
    var databaseDependencies = dbCtx.GetService<DatabaseDependencies>();
    var queryCompilationContext = databaseDependencies.QueryCompilationContextFactory.Create(false);
    var modelVisitor = (RelationalQueryModelVisitor) queryCompilationContext.CreateQueryModelVisitor();
    modelVisitor.CreateQueryExecutor<TEntity>(queryModel);
    var sql = modelVisitor.Queries.FirstOrDefault()?.ToString();
    return sql;
}
Run Code Online (Sandbox Code Playgroud)

c# .net-core ef-core-3.0

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

我可以使用 Entity Framework Core 从存储为字符串的表达式生成 SQL 吗?

如果我有一个存储为字符串的实体框架表达式,如下所示:

var exp = "from user in users where user.Id == 1 select user.Name";
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 EF Core 将其转换为 SQL?

我不需要运行 SQL,只需获取将生成的 SQL。

c# entity-framework-core

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