使用实体框架和LINQ未知列错误 [英] Unknown column error using Entity Framework and LINQ
本文介绍了使用实体框架和LINQ未知列错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我开始与EF昨天和我在急难将这一简单的查询到EF sintax
翻译:
从报价o选择a.city,解决,offer_address OA
其中,o.identifier = oa.offeridentifier
和a.identifier = oa.addressidentifier
按a.city
为了通过COUNT(*)说明
进入:
VAR城市=(邻在db.offer
从在db.address
从OA在db.offer_address
其中,(o.identifier == oa.offeridentifier
&功放;&安培; a.identifier == oa.addressidentifier)
一组由a.city成C
选择新
{
量= c.Count(),
城市= c.Key
})OrderByDescending(一个=> a.quantity)。选择(一个=> a.city);
VAR cityCollection =新的名单,其中,串>();
的foreach(在城市VAR市)
cityCollection.Add(city.ToString());
我已经试过withou成功
VAR城市=(从OA在db.offer_address
从在db.offer.Where(X => x.identifier == oa.identifier)
从广告中db.address.Where(Y => y.identifier == oa.offeridentifier).AsEnumerable()
通过新的{ad.city}组ad.city为G
选择新
{
量= g.Count(),
城市= g.Key
})OrderByDescending(一个=> a.quantity);
发生在尝试获得第一循环中的问题!
未知列'GroupBy1.K1在字段list'`
第55行:的foreach(在城市VAR市)`
对于第二种情况:
无法小组A1
更新
这code的作品,但它不是我需要
VAR城市=(
从db.offer的
从广告中db.address
从OA在db.offer_address
其中,(of.identifier == oa.offeridentifier和放大器;&安培; ad.identifier == oa.addressidentifier)
通过新的{ad.city}组ad.city为G
选择新
{
量= g.Count()
})OrderByDescending(一个=> a.quantity)
或
VAR城市=(
从db.offer的
从广告中db.address
从OA在db.offer_address
其中,(of.identifier == oa.offeridentifier和放大器;&安培; ad.identifier == oa.addressidentifier)
通过新的{ad.city}组ad.city为G
选择新
{
城市= g.Key
});
解决方案
更新 - 尝试添加 AsEnumerable()
后的第一个选择
VAR的查询=(邻在db.offer
从在db.address
从OA在db.offer_address
其中,(o.identifier == oa.offeridentifier和放大器;&安培; a.identifier == oa.addressidentifier)
一组由a.city成C
选择新
{
量= c.Count(),
城市= c.Key
})
.AsEnumerable()
.OrderByDescending(一个=> a.quantity)
。选择(一个=> a.city);
I started with EF yesterday and I am in trouble to transform this simple query into EF sintax
Translate:
select a.city from offer o, address a, offer_address oa
where o.identifier = oa.offeridentifier
and a.identifier = oa.addressidentifier
group by a.city
order by count(*) desc
Into:
var cities = (from o in db.offer
from a in db.address
from oa in db.offer_address
where (o.identifier == oa.offeridentifier
&& a.identifier == oa.addressidentifier)
group a by a.city into c
select new
{
quantity = c.Count(),
city = c.Key
}).OrderByDescending(a => a.quantity).Select(a => a.city);
var cityCollection = new List<string>();
foreach (var city in cities)
cityCollection.Add(city.ToString());
I have tried withou success
var cities = (from oa in db.offer_address
from of in db.offer.Where(x => x.identifier == oa.identifier)
from ad in db.address.Where(y => y.identifier == oa.offeridentifier).AsEnumerable()
group ad.city by new { ad.city } into g
select new
{
quantity = g.Count(),
city = g.Key
}).OrderByDescending(a => a.quantity);
The problem occurs when try to get inside the first loop!
Unknown column 'GroupBy1.K1' in 'field list'`
Line 55: foreach (var city in cities)`
With the second case:
Can't group on 'A1'
UPDATE
This code works, but its not i need
var cities = (
from of in db.offer
from ad in db.address
from oa in db.offer_address
where (of.identifier == oa.offeridentifier && ad.identifier == oa.addressidentifier)
group ad.city by new { ad.city } into g
select new
{
quantity = g.Count()
}).OrderByDescending(a => a.quantity)
Or
var cities = (
from of in db.offer
from ad in db.address
from oa in db.offer_address
where (of.identifier == oa.offeridentifier && ad.identifier == oa.addressidentifier)
group ad.city by new { ad.city } into g
select new
{
city = g.Key
});
解决方案
Update - Try adding AsEnumerable()
after the first select
var query = (from o in db.offer
from a in db.address
from oa in db.offer_address
where (o.identifier == oa.offeridentifier && a.identifier == oa.addressidentifier)
group a by a.city into c
select new
{
quantity = c.Count(),
city = c.Key
})
.AsEnumerable()
.OrderByDescending(a => a.quantity)
.Select(a => a.city);
这篇关于使用实体框架和LINQ未知列错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文