當前位置:首頁 » 編程語言 » 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 10:18:33 瀏覽:152
生信差異分析的腳本 發布:2025-07-18 10:14:50 瀏覽:596
微信打開網頁繼續訪問 發布:2025-07-18 10:09:50 瀏覽:48
蔬菜解壓游戲大全 發布:2025-07-18 10:00:12 瀏覽:71
linuxand 發布:2025-07-18 09:48:27 瀏覽:725
為什麼安卓的app下載不了 發布:2025-07-18 09:47:45 瀏覽:178
如何用伺服器搭建網路 發布:2025-07-18 09:36:05 瀏覽:451
迷你世界電腦版怎麼改密碼 發布:2025-07-18 09:26:41 瀏覽:51
php創建目錄 發布:2025-07-18 09:26:17 瀏覽:659
為什麼手機游戲分ios和安卓端 發布:2025-07-18 09:22:17 瀏覽:140