c# - 在LINQ中设置或更新数据

标签 c# .net linq compiler-errors

通过LINQ
我想比较记录的ID =参数的ID
那么我想在同一条记录中设置或更新doc_id。
我在这里写了几行:

public void Fill_WF_Doc(string ID, int doc)
{
    DataClasses1DataContext DB = new DataClasses1DataContext();
    Waiting_Task entry = new Waiting_Task();
    var c = from D in DB.Waiting_Tasks
            where (D.WF_ID == ID)
            select D.Doc_ID;
    c = doc;
 }

但是我有这个错误:

Cannot implicitly convert type 'int' to 'System.Linq.IQueryable'



有什么帮助吗?谢谢。

最佳答案

通过不对查询调用GetEnumerator的调用,实际上并没有从数据库中检索任何内容。将查询换成()并使用ToList()First()Single()或其他查询来调用查询。

Waiting_Task entry = (from D in DB.Waiting_Tasks
                      where (D.WF_ID == ID)
                      select D).FirstOrDefault();

从那里仅返回Id,您将返回一个int,如果您要更新Entity,请使用select D返回完整的对象

I want set or update the doc_id in the same record.



从那里,您可以简单地更新值和SubmitChanges()以将更新后的值推回到数据库中。
public void Fill_WF_Doc(string ID, int doc)
{
  DataClasses1DataContext DB = new DataClasses1DataContext();
  Waiting_Task entry = (from D in DB.Waiting_Tasks
                        where (D.WF_ID == ID)
                        select D).FirstOrDefault();
  entry.Doc_ID = doc;

  DB.SubmitChanges();
}

关于c# - 在LINQ中设置或更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7203781/

相关文章:

c# - 排序列表并在排序后将特定元素保留在列表末尾

c# - 如何使用 XmlReader 及其结束标记解析 XML?

.net - 在 TokenStream Lucene.Net 中获取 TermAttribute

.net - ODP.NET是否需要安装Oracle客户端

c# - 如果日期相差一天,则合并列表元素

c# - LINQ lambda 表达式不起作用

c# - 数据流(任务并行库)和异步等待

c# - 为什么发布到 fanout exchange 也发布到 direct exchange?

c# - 用ildasm + ilasm打补丁单一方法可行吗?

c# - 有关将数据库集成到我的 C# Winforms 应用程序的更多信息?