2013-05-13 95 views
0

我有一个工作,但我使用了自定义连接字符串后,它的工作方法......LINQ到实体无法识别方法“DataAccessLayer.faturaozellikleri get_Item(Int32)已

public void ShiftBillNumber(List<faturaozellikleri> shiftBillNumberList,int accrual) 
{   
    var faturaOzellikleri = new faturaozellikleri(); 

    for (int i = 0; i < shiftBillNumberList.Count; i++) 
    { 
    faturaOzellikleri = shiftBillNumberList[i]; 

    if (i != shiftBillNumberList.Count - 1) 
    { 
    if (faturaOzellikleri.FaturaSeriID != shiftBillNumberList[i + 1].FaturaSeriID) 
    { 
     shiftBillNumberList[i].FaturaNo = shiftBillNumberList[i + 1].FaturaNo; 
     shiftBillNumberList[i].FaturaSeriID = shiftBillNumberList[i + 1].FaturaSeriID; 
     shiftBillNumberList[i].SeriNo = shiftBillNumberList[i + 1].SeriNo; 
    } 
    else 
    { 
     shiftBillNumberList[i].FaturaNo = shiftBillNumberList[i].FaturaNo + accrual; 
    } 
    } 
    else 
    { 

    var activeSerial =ent.faturaserileri.FirstOrDefault(f => f.ID == shiftBillNumberList[i].FaturaSeriID); 

     *********************** 
    **************** 

     ent.SaveChanges(); 

    } 

    } 
} 

的问题有被内容时发生在过去的其他

var activeSerial =ent.faturaserileri.FirstOrDefault(f => f.ID == shiftBillNumberList[i].FaturaSeriID); 

这是工作,但现在它不工作。我试过这样的(单独作为两个部分

var xx = ent.faturaserileri.Select(s => s); 

var activeSerial = xx.FirstOrDefault(f => f.ID == shiftBillNumberList[i].FaturaSeriID); 

,但我得到了同样的错误..

“faturaozellikleri”在我的数据库表的名字,我使用实体框架..

回答

1

EF试图将部分shiftBillNumberList[i].FaturaSeriID到SQL翻译,但没有翻译的。如果你第一次把它放到一个变量,你会没事的:

var id = shiftBillNumberList[i].FaturaSeriID;  
var activeSerial = ent.faturaserileri.FirstOrDefault(f => f.ID == id); 

变量id的价值现在将转移为查询参数。

+0

啊哈我知道了..但我不明白为什么它工作得更早..现在一切都很好..谢谢。我会在5分钟后接受它作为正确答案:) – ertan2002 2013-05-13 15:20:56

+0

也许你在之前,即在AsEnumerable()或ToList()调用之后在linq-to-objects中做了它。 – 2013-05-13 15:21:56

1

尝试将shiftBillNumberList [i] .FaturaSeriID转换为变量(int或其他),然后调用该函数。

var sampleID = shiftBillNumberList[i].FaturaSeriID; 
var activeSerial =ent.faturaserileri.FirstOrDefault(f => f.ID == sampleID); 

这可能有效。

+0

哇这么亲切的承担:)谢谢你,它的作品 – ertan2002 2013-05-13 15:20:31

相关问题