假设我有这样的功能:
var filterValue = GetCurrentFilter(state);
然后是EF查询:
var result = context.EntitySet.Where(x=> x.column > filterValue);
这是可行的,但只要我尝试将其内联:
var result = context.EntitySet.Where(x=> x.column > GetCurrentFilter(state));
这并不是因为EF试图将GetCurrentFilter解析为表达式树,而无法做到这一点。这都是可以理解的。
我的问题是,是否有
我在我的项目中使用EF核心2作为ORM。我在执行这个查询时遇到了这个问题:
var query = (from droitsGeo in _entities.DroitsGeos
join building in _entities.Batiments
on droitsGeo.IdPerimetre equals building.IdBatiment
where droitsGeo.IdUtilisateur == idUser &&
droitsGeo.Id
我刚刚用代码优先方法将我们的项目从MVC4和EF5更新到了MVC5和EF6,我遇到了一个潜在的问题,我不记得在旧版本中发生过这个问题。在更新单个实体时,我收到一个db错误,该错误抱怨子实体中的一个无效属性。我检查了模型,这个子实体没有虚拟属性集。所以我想知道为什么EF会试图更新这个孩子?
下面是我正在更新的模型:
public class Subscriber
{
[Required]
[Display(Name = "Subscriber ID")]
public int SubscriberId { get; set; }
public v
我是EF的新手。我有一张有项目清单的桌子。我在我的软件中找到了一个查询,它可以找到所有的项目。
public Project[] FindAll()
{
var projects = new List<Project>();
using (var db = new ProjetDbConext())
{
var qProjects = from project in db.ProjectSet
where project.CreateDateTime != null
select project
我正在开发一个使用实体框架3.5和SQL数据库的应用程序。该应用程序基于从用户界面传递的一些搜索条件来搜索对象图。为了处理搜索功能,我使用了一个带有以下接口的查询构建器:
public interface IQueryBuilder
{
IQueryable<SomeClass> BuildQuery(Criteria criteria);
}
criteria对象具有查询生成器用来筛选搜索结果的几个属性。它还带有一个属性,该属性指示结果应该如何排序,称为"OrderBy“。下面是criteria对象的一个示例:
public class Criteria
我有以下DataFrame:
user category x y
0 AB A 1 1
1 EF A 1 1
2 SG A 1 0
3 MN A 1 0
4 AB B 0 0
5 EF B 0 1
6 SG B 0 1
7 MN B 0 0
8 AB C 1 1
9 EF C 1 1
10 SG C 1 1
11 MN
我要为每个员工检索以下查询,即他的主要和次要功能:
DECLARE @mainFunctionId INT
SELECT TOP 1
@mainFunctionId = FunctionId
FROM
(SELECT
[le].[EmployeeId], [le].[FunctionId],[le].[Label],
ROW_NUMBER() OVER (PARTITION BY [le].[EmployeeId] ORDER BY [le].[SortOrder] ASC) AS [RealOrder]
FROM
是否可以使用EF获得pk列的最大值?我的意思是类似于find方法,它基于pk值获取一个实体,我们已经有了以下内容:
public TEntity Find(params object[] keyValues);
我在找这样的东西:
public object PkMax<TEntity>();//which returns max of pk column
更新:
我正在寻找基于实体的pk的动态linq查询,现在我知道如何获得pk,谢谢这个答案:
我有一个60,000个项目的列表-我想发送查询到数据库,检查它们是否存在,如果它们确实返回一些计算结果。我运行了一个普通的查询,当逐个迭代列表时,该查询已经运行了4天。我想我可以使用线程模块来改进这一点。我做了这样的事情
if __name__ == '__main__':
for ra, dec in candidates:
t = threading.Thread(target=search_sl, args=(ra,dec, q))
t.start()
t.join()
我只测试了10个项目,它工作得很好-当我提交了60k个项目的整个列表时,我遇到
我一直认为,如果BigDataSet是一个实体,并且您指定了var someThing = Context.BigDataSet.Single(x => x.Name.Trim().ToUpper.Equals(someName.Trim().ToUpper()));,那么EF将执行一些魔术,将您的lambda表达式转换为一个查询,例如
SELECT * FROM big_data_set WHERE name = (someName)
但是,经过考虑,我看不到它的工作方式,除非将Context.BigDataSet的结果保存在内存中,然后执行搜索。
EF DbSet lambda表达式
我尝试在数据库站点上执行一个简单的类似操作,同时使用基于泛型类型的查询构建服务。但是,我在调试时发现,使用反射执行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.。
--使
在我的项目中,我使用F# query expression查询我的数据库。 下面的代码计算按“Key”列分组的平均值: open System.Linq
query{
for row in ctx.MyTable do
groupBy row.MyKey into g
select (g.Key, g.Average(fun x -> x.MyValue))
} 我已经意识到,对于我的项目来说,中位数会比Average更好。问题是,似乎不支持在DB引擎上计算中位数。但是,我希望避免获取所有行并计算内存中的中位数,因为它们太多了,并且我需要节省网络带宽。 这里有
我正在构建一个新的扩展方法,它可以动态地分组来自实体框架的查询结果。
我已经能够使用LinqKit构建动态"where“表达式,但这似乎是另一种动物。
新扩展方法的预期用途:
var results = entities.GroupBy("someFieldName").ToList();
扩展方法定义:
public static IQueryable<IGrouping<object, TEntity>> GroupBy<TEntity>(
this IQueryable<TEntity> so
我需要在EF/Linq中创建以下TSQL查询,但我正在挣扎:
SELECT mi.CategoryID, cat.Category
FROM tblPropertyMaintenanceItem mi
INNER JOIN tblCategory cat
ON cat.CategoryID = mi.CategoryID
WHERE mi.PropertyID = 451
GROUP BY mi.CategoryID, cat.Category
ORDER BY cat.Category
我已经完成了一个基本的查询,但这显然给了我重复的行:
var cats = context.Mainten