当前位置:首页 » 编程语言 » efsql查询
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

efsql查询

发布时间: 2022-06-09 04:54:33

❶ EF框架 对数据库进行查询 查出来的数据的列如何命名别名!

可以试试new后面{xx=a.test_no}这样的形式,不过最保险的是自定义类型然后select new的时候指定具体类!

❷ ef sqlquery tolist 慢是什么原因

1、查询卡,你说只有30S
2、传输卡,网络速度或是网络问题。
3、界面绑定卡,控件处理问题。
我觉得你的问题不是数据库的事,也不是EF的事,你是不是在界面上对查询出的数据又做了其它处理,估计慢的地方是这块处理的程序。

❸ EF和SQL 语句 哪个执行效率更高

性能上,自然是ef要低些。这是毫无疑问的。but,你觉得这点性能损耗和带来的方便快捷那个更重要,就像二八原则

❹ 如何查看EF 生成的sql语句

添加 引用:
using System.Data.Objects;

var results = db.tb_proct.Where(s => s.ID == 2160);
var sql = (results as ObjectQuery<tb_proct>).ToTraceString();

在EF4.1中,可以直接 使用 ToString()

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

string sql = people.ToString();
}

❺ 如何得到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();
}

❻ c#用 ef怎么执行sql语句

EF
model
first方式,
你的DB是继承ObjectContext
using (MyObjectContext db = new MyObjectContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
db.ExecuteStoreQuery
(sql).ToList();//TableAObject就是你定义的对象,对象属性就是columnA, columnB
} code
first,
你的db是继承DbContext
using (MyDbContext db = new MyDbContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
db.TableAObject.SqlQuery(sql).ToList();//TableAObject就是在MyDbContext 定义的对象
}
这里只是列举查询的方式,仅供参考,一般新增
删除
或者修改
用对象的方式比较多,如果是sql,一般是
db.Database.ExecuteSqlCommand(sqlString)

❼ 如何在EF中直接运行SQL命令

相信不少使用EF的同志们已经知道如何在EF中运行SQL命令了。我在这里简单总结下,希望对大家学习EF有所帮助!

在 EF第一个版本(.NET 3.5 SP1)中,我们只能通过将ObjectContext.Connection转换为EntityConnection,再把 EntityConnection.StoreConnection转换为SqlConnection。有了这个SqlConnection,我们再创建 SqlCommand便能顺利运行SQL命令了。(个人觉得其实很烦,呵呵)

例如:

EntityConnection entityConnection = (EntityConnection)ctx.Connection;
DbConnection storeConnection = entityConnection.StoreConnection;
DbCommand cmd = storeConnection.CreateCommand();
cmd.CommandType = System.Data.CommandType.StoredProcere;
cmd.CommandText = "[PRO_USER_DIGITALCARD_CHECK]";

。。。。。。。

在EF4(.NET 4)中,我们有了全新的API:ObjectContext.ExecuteStoreCommand(...)和 ObjectContext.ExecuteStoreQuery<T>(...)。从函数名不难知道前者是为了执行某一并无返回集的SQL 命令,例如UPDATE,DELETE操作;后者是执行某一个查询,并可以将返回集转换为某一对象。

using (var ctx = new MyObjectContext())
{
ctx.ExecuteStoreCommand("UPDATE Person SET Name = 'Michael' WHERE PersonID = 1");
}
using (var ctx = new MyObjectContext())
{
var peopleViews = ctx.ExecuteStoreQuery<PersonView>("SELECT PersonID, Name FROM Person");
}

public class PersonView
{
public int PersonID { get; set; }
public string Name { get; set; }
}
现在有了EF4.1,API的名字又有了些许改变。如果说DbContext将ObjectContext做了包装,那么DbContext.Database就是对应于数据库端信息的封装。执行SQL命令也自然从Database类型开始。对应于ExecuteStoreCommand和ExecuteStoreQuery<T>的是Database.ExecuteSqlCommand和Database.SqlQuery<T>。

using (var ctx = new MyDbContext())
{
ctx.Database.ExecuteSqlCommand("UPDATE Person SET Name = 'Michael' WHERE PersonID = 1");
}
using (var ctx = new MyDbContext())
{
var peopleViews = ctx.SqlQuery<PersonView>("SELECT PersonID, Name FROM Person").ToList();
}

public class PersonView
{
public int PersonID { get; set; }
public string Name { get; set; }
}

❽ 如何设置EF生成sql不带dbo

不同的数据库,应该要重新生成EF。不能联接sqlserver生成EF,然后使用oracle或是mysql。

❾ 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...
这个思路应该是这样的,你自己把代码补充完整,数据类型定好,希望能帮到你

❿ 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();
}