实体框架实体SQL与查询构建器方法

Gib*_*boK 8 c# entity-framework

查询概念模型.

我知道在EF中有3个用于查询的选项:

  • Linq to Entity
  • 实体SQL
  • 查询构建器方法

这是最后两个代码的示例:

#region Query Entity Sql
string queryJob4 = @"SELECT VALUE myJobs FROM CmsJobs AS myJobs WHERE myJobs.JobId = @id";
ObjectQuery<CmsJob> queryJobs4 = new ObjectQuery<CmsJob>(queryJob4, context);
queryJobs4.Parameters.Add(new ObjectParameter("id", 58));
#endregion

#region Query Builder method
ObjectQuery<CmsJob>queryJob5 = context.CmsJobs.Where("it.JobId == @id", new ObjectParameter("id",66));
#endregion
Run Code Online (Sandbox Code Playgroud)

我想知道:

  • 在哪种环境下,哪种方式更合适?为什么?
  • 你用了什么?为什么?

谢谢你的意见!

J.W*_*.W. 3

Linq to Entity 是构建大多数查询的更简单方法,并且它是强类型的,因此如果您可以使用 Linq To Entity,我会将此作为首选。但是,在某些情况下您无法使用 Linq to Entity,则必须使用 Entity SQL 或查询构建器方法。

一点是,如果您想在 VB 或 C# 程序之外使用实体框架,则可能无法使用 LINQ to Entities。