Linq to Entities:更新自定义类中的字段

时间:2013-06-24 23:20:02

标签: vb.net linq-to-entities

我正在使用Linq to Entities和Oracle数据库。我正在尝试更新(仅用于显示,不用来更新数据库)结果查询...如果我向您展示我正在做的事情,对我来说很容易:

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中的值。 我做错了什么?

谢谢!

埃德加。

1 个答案:

答案 0 :(得分: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();
}