1

我正在使用带有 Oracle 数据库的 Linq to Entities。我正在尝试更新(只是为了显示,不更新数据库)结果查询......如果我告诉你我在做什么,对我来说很容易:

Public Function getValues(ID As String) As IQueryable(Of  CUSTOM_CLASS)

     Dim theValues = db.SOMETABLE _
                       .Where(Function(st) st.ID = ID) _ 
                       .Select(Function(st) New CUSTOM_CLASS With{ _
                            .ID          = st.ID, _
                            .DESCRIPTION = st.DESCRIPTION, _
                            .CUSTOM_FIELD = “”
                       })

    For Each v in theValues
         v.CUSTOM_FIELD = functionThatReturnSomeValue()
    Next 

    Return theValues

End Function

我的代码编译没有问题,如果我调试,CUSTOM_FIELD 的值是“Some Value”。但是当我使用这个函数时,我得到的结果没有 CUSTOM_FIELD 中的值。我做错了什么?

谢谢!

埃德加。

4

1 回答 1

0

我仍然认为您的查询正在以某种方式重新执行。仅当我在那里有 ToList() 调用时才对我有用(在 LINQPad 中测试):

public class XY
{
  public string Name;
  public string X;
}
void Main()
{

    var x= MyEntitySet.Select(yy => new XY {Name = yy.Name, X = "" }).ToList();
    x.Dump();
    foreach (var y in x)
    {
        y.X = "someText";
    }
    x.Dump();
}
于 2013-06-25T03:56:40.317 回答