Обязательный столбец int_CommodityPriceId не существует в результатах.linq to sql - PullRequest
1 голос
/ 16 сентября 2011
public IEnumerable<CommodityPrice> GetAllTimeFrameDaily()
    {
        return _dbprice.ExecuteQuery<CommodityPrice>("SELECT MIN(CommodityPrice.dtm_Date),MAX(CommodityPrice.dtm_Date) FROM CommodityPrice WHERE (CommodityPrice.int_FrequencyId = 1) and int_MarketLocationId in (SELECT [int_LocationId] FROM [Location] where int_LocationTypeId=4  and int_ParentLocationId in (SELECT [int_LocationId] FROM [Location] where int_LocationTypeId=2 and int_ParentLocationId in (SELECT int_LocationId FROM [Location] where int_LocationTypeId = 1 and vcr_LocationEn='Pakistan')))");
    }

Я получаю эту ошибку The required column 'int_CommodityPriceId' does not exist in the results. Любая идея, почему он это делает.(в моем dbml-файле есть столбец CommodityPriceId).я использую linq для sql и vs 2010. запускаю его в работающем файле на сервере sql

commodityprice

int_CommodityPriceId bigint Unchecked
int_CommodityId bigint  Checked
int_SourcesId   int Checked
int_MarketLocationId    int Checked
int_FrequencyId int Checked
flt_Price   float   Checked
flt_PriceUSD    float   Checked

1 Ответ

2 голосов
/ 16 сентября 2011

Этот код пытается присвоить результаты объекту CommodityPrice. Для этого ему необходимо вернуть все столбцы, определенные в свойствах столбца сущности CommodityPrice. Ваш запрос не возвращает НИКАКОГО из них ..

Если вы просто хотите вернуть эти 2 поля, вам потребуется новый объект, содержащий всего 2 поля даты.

TimeFrame
dte_CommodityPriceMinDate  datetime  Unchecked
dte_CommodityPriceMaxDate  datetime  Checked

и запрос должен заполнить это вместо:

public IEnumerable<TimeFrame> GetAllTimeFrameDaily()
    {
        return _dbprice.ExecuteQuery<TimeFrame>("SELECT MIN(CommodityPrice.dtm_Date) AS dte_CommodityPriceMinDate ,MAX(CommodityPrice.dtm_Date) AS dte_CommodityPriceMaxDate FROM CommodityPrice WHERE (CommodityPrice.int_FrequencyId = 1) and int_MarketLocationId in (SELECT [int_LocationId] FROM [Location] where int_LocationTypeId=4  and int_ParentLocationId in (SELECT [int_LocationId] FROM [Location] where int_LocationTypeId=2 and int_ParentLocationId in (SELECT int_LocationId FROM [Location] where int_LocationTypeId = 1 and vcr_LocationEn='Pakistan')))");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...