我有一个视图,我用它来总结标签在我们的应用程序中用来描述项目的次数。每个Project都有一个标签数组,当显示标记时,我想显示使用了多少次(并链接到其他项目)。标记对象看起来像
public class Tag {
public int TagID { get; set; }
public int ProjectID { get; set; }
public string TagValue { get; set; }
//public int TagCount { get {LINQ Query returning count from View}; }
}
我有下表:
Indicators(A INT, B INT, C INT, D INT, TimeInsertedLocal DateTime) .
我有EF核心映射实体,它映射到这个表。
我需要将这个SQL查询转换为ef核心Linq等价查询。
SELECT A, B, C, D, TimeInsertedLocal
FROM Indicators
WHERE TimeInsertedLocal >=
(
SELECT MAX(I.TimeInsertedLocal)
FROM Indicators AS I
)
这是一个实体:
public class I
目前,我在ORMs方面的经验仅限于NHibernate。
然而,我刚刚开始开发一个新项目,即使用EF6。
在Linq到NHibernate中,我们能够在一次往返中延迟查询执行和补充多个查询,如下所示:
// apples will be an IEnumerable<Apple> and won't be hydrated until it is enumerated
// or another query is hydrated
var apples = session.Query<Apple>().Where(a => a.Type = "r
我使用的是EFCore SQLite,当使用Linq运行一个简单的查询时,我注意到查询Take().Last()没有返回预期的结果,示例代码如下:
// There are more than 10000 rows in the table
DbSet<DataEntry> set = ctx.Set<DataEntry>();
// this should return the first 20 rows
var current = set.OrderBy(row => row.Id).Take(20);
// first entry is right
long
在将我的ASP.NET Core2.2应用程序迁移到ASP.NET Core3.0之后,我继续遇到问题.
这一次,除了表单之外,曾经有效的Linq到SQL查询失败了:
The LINQ expression 'blahblah' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsy
假设我正在使用此示例中的图形数据库(SQL Server 2017):
我有以下SQL查询:
-- Find Restaurants that John likes
SELECT Restaurant.name
FROM Person, likes, Restaurant
WHERE MATCH (Person-(likes)->Restaurant)
AND Person.name = 'John';
我使用EF 6.1.3在C#中创建了一个模型,它会自动生成数据库中的所有类和所有内容(数据库中的EF Designer )。这一切都运行得很好。我甚至可以使用一个简单的
我正在尝试分组加入EF核心3.1它返回的问题
处理LINQ表达式'DbSet失败。这可能表明有缺陷或限制在EF核心
我的代码是这样的
var employees = await (from enrollment in RepositoryContext.Enrollments
join allowance in RepositoryContext.Allowances.Include(y=>y.AllowanceType) on enrollment.EmployeeId equals allowance.EmployeeId
我正在尝试将以下sql查询转换为EF
sql查询
Select Sum([KiloWatt]) as 'Sum',
Min([KiloWatt]) as 'Min',
Max([KiloWatt]) as 'Max',
Sum([KiloWatt])/COUNT([KiloWatt]) as 'Average',
CONVERT(date, [DateTime])
from OneHourElectricitys
where [DateTime] < SYSDATETIME()
grou
我正在尝试将一些代码从EF6转换到EF 1 RC1,我被困在了需要使用linq在服务器端将日期与当前日期进行比较的点上。查询的另一个部分是获取这些日期的一周中的一天。
EF6代码使用完全限定为System.Data.Entity.SqlServer.SqlFunctions的SqlFunctions类,afaik尚未移植到新版本。
什么是推荐的方法或选择,以保持这一工作的EF核心?
最初的查询如下所示:
var result = db.Logs.Select(log => new {
Date = log.Date,
Rel = System.Data.Entit
我要查询用户插入了多少实体(Version = 1)和更新了多少实体(Version > 1)。它通过记录的UserName查询整个表和组。这是原始SQL查询:
SELECT
[s.InternalUser].[UserName],
COUNT(CASE WHEN s.Version = 1 THEN 1 END) AS [InsertCount],
COUNT(CASE WHEN s.Version > 1 THEN 1 END) AS [UpdateCount]
FROM [Sale] AS [s]
INNER JOIN [InternalUser]
过去一周我一直在博客上看到Linq to SQL已经死了,EF和Linq to Entities万岁。但当我阅读MSDN的概述时,我发现Linq to Entities生成eSQL的方式就像Linq to SQL生成SQL查询一样。
现在,由于底层实现(而且SQL Server还不是ODBMS)仍然是关系存储,因此在某些时候实体框架必须将其转换为SQL查询。为什么不解决Linq到SQL的问题(m:m关系,仅支持SQL服务器等)并使用Linq to SQL作为生成这些查询的层?
这是因为性能原因还是EF使用了一种不同的方式将eSQL语句转换成SQL?
在我看来--至少对于我外行的头脑来说--在E
我正试图在EF Core中构建一个正常的查询,该查询返回从事物集合派生出来的事物集合。基本上,在原始SQL中,可以进行连接。
它在ASP.NET核心中,因此初始集合是SecurityPrincipal对象上的角色列表:
var roles = User.FindAll(ClaimTypes.Role).Select(r=>r.Value);
然后将这些角色映射到数据库中的组,这样我就可以查找以下内容:
var groupsQuery = dbContext.Groups.Where(g=>roles.Any(r=>r==g.GroupName));
var groups =
我正在使用以下代码执行LINQ to entity framework (EF)来获取我的表中的记录数:
using (var db = new StackOverflowEntities())
{
var empLevelCount = db.employeeLevels.Count();
}
我使用SQL Server事件探查器捕获了EF向数据库发出的查询。我得到了以下查询:
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].
我有一个SQL查询,我想将它转换为Linq。
这是我的SQL查询:
SELECT
Calisanlar.CalisanId,
CovidYakalanmaTarih,
CovidBitisTarih
FROM
Calisanlar
INNER JOIN
Covids ON Calisanlar.CalisanId = Covids.CalisanId
WHERE
Calisanlar.CalisanId IN (SELECT TOP 10 CalisanId
FROM Has
我尝试在数据库站点上执行一个简单的类似操作,同时使用基于泛型类型的查询构建服务。但是,我在调试时发现,使用反射执行EF.Functions.Like()并不像预期的那样工作:
The LINQ expression 'where __Functions_0.Like([c].GetType().GetProperty("FirstName").GetValue([c], null).ToString(), "%Test%")' could not be translated and will be evaluated locally.。
--使
我已经迁移了几个CQRS框架中的概念,我已经看到并刚刚开始面临一些问题。
我有一个通用的LINQ子类,我在任何消费项目中使用它,没有进一步的扩展来适应应用程序的域,相反,我提供了接口,IReadEntities和IWriteEntities,它们有像Query()和Get()这样的方法,它们在幕后调用Set()返回DbSet(),然后允许标准LINQ链接到任何EF查询。我在IQueryables上使用Include()时遇到了一些问题,因为我在所有调用的末尾使用LinqKit和AsExpandable()。这就是我的上下文查询方法
public new IQueryable<TEntit
据我所知,在EF (和EF Core)中没有选项可以显式锁定我正在查询的资源,但是我将经常需要这个功能,并且不想每次需要它时都重新编写select语句。
由于我只需要用于postgres和 FOR UPDATE是查询中的最后一项,所以我想实现它的最简单的方法是获得这里描述的select语句:和append FOR UPDATE并直接执行它。但是,这要么会给我一个带有参数占位符的查询,要么不会给出一个预先准备好的查询,这意味着执行计划的缓存不会真正在postgres上工作,因此无论是哪种方式,都是不可行的。
Linq的方法是,但在EF和特别是EF中似乎没有任何等效的地方。我还查看了EntityF
我使用的是.NET 4.5和EF6.0(也尝试了6.1.3)。我在实体表(System.Data.Entity.Spatial.DbGeography)中有位置地理列。
using System.Data.Spatial; //also tried Entity one
public class Entity
{
public DbGeography Location {get;set;}
}
在LINQ中,我试图选择指定区域内的所有实体。
var center = DbGeography.FromText(string.Format("POINT({0} {1})"
使用实体框架和LINQ,我如何实现这个TSQL:
SELECT Children.ChildCount, Parent.*
FROM Parent
LEFT JOIN (SELECT ParentID, COUNT(ChildID) AS ChildCount FROM Child GROUP BY ParentID) AS Children
ON Parent.ID = Children.ParentID
请注意,这只是已经包含其他相关实体的更大LINQ查询的一小部分,因此使用RawSQL查询不是一个选项。此外,父表有大约20列,我希望不必单独指定每个列来保持代码的可维护性。
编辑:为了澄
我想我从LinqPad文档中了解到,与实体框架相比,它使用了不同的linq转换器。LinqPad实际上至少在一种情况下更有效!详情如下:
LinqPad生成以下简单的sql查询:
SELECT [t0].[personId]
FROM [Person] AS [t0]
WHERE (NOT (([t0].[deleted]) = 1)) AND ([t0].[masterPersonId] = @p0)
ORDER BY [t0].[personId] DESC
对于此C# linq代码:
int? state = null;
string realmId = null;
int? revie
在遵循数据库第一方法时,我对Linq和Entity之间的区别感到困惑,因为我找不到任何明显的区别。
在我的例子中,当我使用Linq- to -SQL创建表时,我使用Linq到-SQL创建表示表的类,现在当我切换到实体框架时,我仍然遵循相同的步骤(创建数据库表,然后使用EF创建关联的类)。
我用同样的方式与这些类进行交互,例如,我过去使用相同的语法和方法查询用户类,但一次使用Linq创建User类,另一次使用EF、创建类,那么差异在哪里呢?
public IQueryable<User> findstudents(string term)
{
为了在DataGridView中显示,我想将数据汇总到DataTable中的SQL表中。我想用LINQ查询表。
此SQL查询将生成摘要:
;WITH CTE AS (
SELECT * FROM vw_Trades WHERE NOT (dtExpDate < GETDATE())
)
SELECT szSymbol, dtFwdDate, sum(fQuantity)
FROM CTE GROUP BY szSymbol, dtFwdDate
HAVING SUM(fQuantity) <> 0
ORDER BY szSymbol, dtFwdDate
GO
我试图使用
当我查看EF生成的SQL查询时,我看到
SELECT [extent1].ID as ID,
[extent1].Name as Name
From(
Select myview.ID as ID,
myview.Name as Name
From myview) AS [extent1]
Where([Extent1].ID = @p_linq_0)
为什么outside select发生在inside select上?我有一个非常大的表,我可以通过外部查询轻松地从其中获得记录,但整个查询组合超时。
我的Linq查询
var result = from i in invitationEn