当前位置:首页 » 编程语言 » ef跟踪sql

ef跟踪sql

发布时间: 2023-05-12 01:15:57

1. EF怎么使用sql语句查询到结果然后映射到自定义实体去

给你举个例子:

staticvoidMain(string[]args)
{
using(MyDBEntitiesen=newMyDBEntities())
{
varp1=en.People.First(x=>
x.Name=="Jim");
Console.WriteLine(p1.Age);

varp2=en.Database.SqlQuery<Person>(
@"selecttop1*fromperson
wherename='Jim'")
.First();
Console.WriteLine(p2.Age);
//p1p2是同一个记录
}
Console.ReadLine();
}

2. 如何得到EF查询生成的SQL

在EF 4.1中,我们可以直接调用DbQuery<>的ToString()方法得到所生成的SQL。

using (var context = new MyDbContext())
{
var people = from p in context.People
where p.PersonID > 100
select p;

string sql = people.ToString();
}

3. ef使用sql语句查询单个数据,比如我要查询某表里面的某一个值,该怎么用。谢谢大神

declare
varchar temp(10)
select @temp=z from DB:A where ...
if(@temp==1)
select * from DB:B where...
else if(@temp==2)
select * from DB:C where...
else if(@temp==3)
select * from DB:D where...
这个思路应该是这样的,你自己把代码补充完整,数据类型定好,希望能帮到你

4. 如何得到EF查询生成的SQL

在EF 4.1中,我们可以直接调用DbQuery<>的ToString()方法得到所生成的SQL。

using (var context = new MyDbContext())
{
    var people = from p in context.People
                 where p.PersonID > 100
                 select p;

    string sql = people.ToString();
}

所生成的SQL是:
SELECT 
[Extent1].[PersonID] AS [PersonID], 
[Extent1].[Name] AS [Name]
FROM [dbo].[People] AS [Extent1]
WHERE [Extent1].[PersonID] > 100
大 家应该已经猜到,这里的ToString()方法其实也就是调用了ObjectQuery<>的ToTraceString()方法。 DbQuery<>.ToString() ==> System.Data.Entity.Internal.Linq.InternalQuery<>.ToString()方法,此方法 在.NET Reflector得到的实现是这样的:
public override string ToString()
{
    return this._objectQuery.ToTraceString();
}

热点内容
需要更改哪些防火墙配置 发布:2025-07-18 14:53:23 浏览:928
服务器如何不设置密码直接进入 发布:2025-07-18 14:48:23 浏览:380
eclipse设置增量编译 发布:2025-07-18 14:43:24 浏览:66
访问virtualbox 发布:2025-07-18 14:43:19 浏览:67
怎么找回建行登录密码 发布:2025-07-18 14:39:38 浏览:348
如何让安卓变得像苹果一样快 发布:2025-07-18 14:38:05 浏览:217
台安源码 发布:2025-07-18 14:35:32 浏览:601
下载种子怎么是php 发布:2025-07-18 14:35:00 浏览:5
linuxtimet 发布:2025-07-18 14:34:46 浏览:299
轻客有哪些安全配置 发布:2025-07-18 14:09:22 浏览:409