我使用LINQ查询我的POCO对象已经有一段时间了,但我还没有尝试过LINQ to SQL。我假设LINQ to SQL查询以某种方式转换为等价的SQL查询,鉴于此,我想知道这是否会影响LINQ to SQL查询的编写方式。
LINQ to Objects和LINQ to SQL之间有什么显著的区别吗?这会影响我应该如何为它们编写查询?
我有一个Linq查询,它从SQL Server返回大量的结果,我想确保,我只从数据库中获得一次记录,然后在页面中按需循环记录,而不访问DB。
下面是一个简单的查询:
Dim c1 = (From c2 In _db.CategoryRelationShip
Select c2)
现在,在页面的某个地方,我会:
For Each item In c1
Next
然后再一次:
For Each item In c1
Next
这是否意味着在每一个For循环中,我都会一次又一次地访问数据库?还是我的原始Linq删除了所有的记录,而我只是简单地遍历数组/结果?
我听说过toList
我有一个SQL查询,如下所示,我正在努力将其转换为等效的Linq。
SELECT *
FROM Product A
WHERE NOT EXISTS
(
SELECT * FROM Vendors B JOIN ThirdPartyProduct C
ON B.ProductId = C.ExternalProductId
WHERE A.ProductCode = C.PrdouctCode AND C.SupportCode
)
我知道我可以使用Any来执行查询的不存在部分,但是,由于我也有一个join,所以我不知道如何在Linq中计算它。这里的任何帮助都将是
考虑以下LINQ-to-NHibernate查询:
var q1 = from se in query.ToList<SomeEntity>()
where
prop1 == "abc"
select se;
var q2 = from se in q1
where
m1(se.prop2) == "def"
select se;
q2将无法工作,并出现错误:“未实现方法m1”。但是当用下面的查询替换q2时,一切都正常:
var q2 = from se in q1.ToList<SomeEntity>()
根据所有示例,将SQL转换为LINQ for this子句,如本例所示:
SELECT NAME
FROM TABLES
GROUP BY NAME
HAVING COUNT(*) > 1
is:(vb.net)
from t in tables
group t by t.NAME into g = Group
where g.count > 1
select g
但是,上面的LINQ语句被转换为以下SQL:
SELECT [t1].[NAME] AS [Key]
FROM (
SELECT COUNT(*) AS [value], [t0].[NAME]
因此,我正在调试使用Entity Framework Core 2.1.14的应用程序。我首先通过脚手架从数据库创建了实体。数据库为Oracle 5.7.29,EF Core的MySQL数据提供程序为Oracle的MySql.Data.EntityFrameworkCore 8.0.19。 示例:一个简单的Linq查询应该在后端创建一个合适的SQL语句。然而,事实并非如此。"Inactive“是Byte? Dim associates = (From a In DatabaseContext.Associate
Where a.Inactive =
技术: EF 6.1.3,Database First Approach和SQL Server。
问题:我遇到了以下Linq查询的问题,
EmployeeEntities db = new EmployeeEntities();
IQueryable<Model.Employee> employees = from e in db.Employee
where e.EmployeeName == null
select e;
我
给定一个简单的Linq to EF (EF5)语句:
MyDBSet.Select(x => x.Column1)
将生成以下SQL:
SELECT
[c].[Column1] AS [Column1]
FROM (SELECT
[MyDBSet].[Column1] AS [Column1],
[MyDBSet].[Column2] AS [Column2],
...
[MyDBSet].[ColumnN] AS [ColumnN]
FROM [dbo].[MyDBSet] as [MyDBSet]) as [c]
返回所有列的额外嵌套查询实际上是不必要的。这可能是无害的,但我认为我
我一直在和LINQ的实体打交道,得到了奇怪的结果,我想得到一个解释.
给定以下LINQ查询,
// Sample # 1
IEnumerable<GroupInformation> groupingInfo;
groupingInfo = from a in context.AccountingTransaction
group a by a.Type into grp
select new GroupInformation()
{
GroupName =
大家好,我有这个SQL查询(MSSQL),我正在做一个查询,其中连接的结果给了我最新行的“顶部”行,没有重复的结果,你可以在这里找到我正在做什么的信息。事情是这样的,我已经完成了SQL查询,工作如我所期望的,我在子句"where pi.PlazaIe in ('','') where pi.PlazaIe in (‘’,‘’)where pi.PlazaIe in(‘’,‘’)“中使用的每个IDKEY都得到1行。
Select * from PlazaI pi
join (
Select * from PlazaE pe where
N
我有这份LINQ声明,
var carriageways = from carriageway in dataModelCurrentEntities.Carriageway
where carriageway.RoadId == roadId && carriageway.DistanceBreak == false
orderby carriageway.CarriagewayStartInMetre
select new CarriagewaySummary
int[] ids1 = { 1, 2, 3 };
int[] ids2 = { 1, 5, 6 };
var result = from a in ids1
where a == ids2.First()
select a;
foreach (var item in result) ; //ok
var employees = from c in context.Employees.
where c.EmployeeID == ids1.First()
select
我有以下Linq查询...它可以正确执行:
from t in Tasks
where LookupTaskStarted(t.TaskId) == true
select new
{
t.TaskId,
t.Number,
Started = LookupTaskStarted(t.TaskId)
}
有没有办法将其创建为Linq- to -Sql类的属性?或者我总是要像这样引用它?
我正在使用MVC Mini Profiler,并且我正在尝试测量查询的LINQ to SQL部分(生成表达式树、实际的SQL命令等)与花费在数据库端的时间的影响。
我看到一个“此步骤中所有查询的合计持续时间(不包括子项)”。这是否包括LINQ to SQL部分和数据库调用,还是仅包括数据库部分?当单击"sql“链接查看已运行的查询列表时,我看到了查询持续时间。同样,这是否包括LINQ部分或仅包括数据库端?
谢谢。
我为我最近的SQL/Linq问题道歉,但是我需要知道在LINQ中这个工作的SQL查询是什么样子的?
select *
from CarePlan c
outer apply (select top 1 * from Referral r
where
r.CarePlanId = c.CarePlanId order by r.ReferralDate desc) x
left outer join Specialist s on s.SpecialistId = x.SpecialistId
left out
我使用SQL4将linq查询转换为LinqPad,但我对转换后的sql查询感到非常困惑。我有一个与AppliedJob相关的职务表。AppliedJob与JobOffer相关。JobOffer与合同相关。合同表中有一个字段CompletedDate,该字段在职务合同开始时最初设置为“空”。如果作业已完成十次,则该字段将更新为当前日期。我想得到那些CompletedDate !=Null的工作列表(如果在合同表中找到的话)。这意味着与工作相关的合同尚未完成或在合同表中找不到。未找到表示任何合同未随作业一起启动。我的Linq:
from j in Jobs
join jobCon
在过去,我曾将Linq写到执行不佳的SQL查询。使用similar(或类似的),我可以通过在数据库中截取查询来查看如何将查询转换为SQL。
是否有一种方法可以对仅在对象上操作的Linq查询执行此操作?
例如,考虑对有向图中的边列表进行以下Linq查询:
var outEdges = from e in Edges
where e.StartNode.Equals(currentNode) &&
!(from d in deadEdges select d.StartNode).Contains(e.EndNode)
我使用LINQ (非实体框架),System.Data.Linq.DataContext库,访问Server 2005数据库并使用.Net Framework4。
表dbo.Dogs有一个类型为CHAR(1) NULL的列"Active“。如果我要直接编写SQL,那么查询应该是:
SELECT * FROM dbo.Dogs where Active = 'A';
LINQ查询如下:
from d in myDataContext.Dogs where d.Active == 'A' select d;
从上述LINQ查询生成的SQL将活动字段转换为UN
我在一本简明的书中查阅了LINQPad提供的示例C#查询,发现了一些我从未在LINQ to SQL中使用过的东西……编译的查询。
下面是确切的示例:
// LINQ to SQL lets you precompile queries so that you pay the cost of translating
// the query from LINQ into SQL only once. In LINQPad the typed DataContext is
// called TypeDataContext, so we proceed as follows:
var cc =
我有一些分层数据--每个条目都有一个id和一个(可空的)父条目id。我想检索树中给定条目下的所有条目。这是在SQL Server 2005数据库中。我在C# 3.5中用LINQ to SQL查询它。
LINQ to SQL不直接支持。我的选择是用几个LINQ查询在代码中组装数据,或者在呈现CTE的数据库上创建一个视图。
当数据量变大时,您认为哪个选项(或另一个选项)的性能会更好?在Linq to SQL中是否支持SQL Server2008的?
我正在尝试将查询从原生sql重写到linq语法(而不是linq查询语法)。
LINQ (不工作)
var result = _uow.Repository<TableA>().Get().AsNoTracking()
.GroupJoin(
_uow.Repository<TableB>().Get().AsNoTracking(),
a => new { a.TabNotesCodeId, a.TabLabelCodeId },
b => b.ElementNameId
(b, a)
很抱歉,我告诉您,我在LINQ上有一点不足,我总是在开始处理复杂的LINQ之前编写SQL查询。
我想问一下如何将这个SQL查询转换为带有多个ON条件的LEFT JOIN和操作符的LINQ。
m.MerchandiseId将在正常情况下使用两次
SELECT
*
FROM
Inbox AS i
INNER JOIN [User] AS u ON i.FromUserId = u.UserId
LEFT OUTER JOIN Merchandise AS m ON
u.MerchandiseId = m.MerchandiseId
O
在下面的Linq2Sql查询中,有人能告诉我
1)什么时候将查询发送到server?
a)当查询将表达式分配给它或
b) (延迟执行),当它在foreach循环中需要的时候?
var query = from c in myDataContext.Customers
where c.FirstName == 'Tom'
select c;
foreach(customer cust in query)
{
//...do something
}
2):.NET应用程序或Server是否将表达式树转换为.NET查询?我问这个是
为了获得知识,我想将SQL查询转换为LINQ查询表达式。下面是原始SQL:
SELECT CT.COURSE_NODE_ID AS CNID, CT.NODE_TEXT
FROM COURSE_RELATED_VERSIONS AS CRV INNER JOIN
COURSE_TREE AS CT ON CRV.COURSE_NODE_ID = CT.COURSE_NODE_ID
WHERE (CRV.COURSE_ID = '38890') AND (CRV.COURSE_PARENT_NODE_ID = '-1')
基本上,只需根据特定