怎么把这条update语句改成linq?

nuoya709 2015-06-14 11:14:38
UPDATE D_BIAO
SET
AUDIT_FLAG=#{auditFlag},
AUDIT_NAME=#{auditName},
AUDIT_DATE=getDate(),
AUDIT_NOTE=#{auditNote}
WHERE MESSAGE_ID=#{messageId}
怎么改成linq
急求 3Q

用的是c#,如查询语句写成这样:
var query = from f in db.D_BIAO
where (f.MESSAGE_ID == MESSAGE_ID)
select new Model
{
MESSAGE_ID = f.MESSAGE_ID, //编号
SENDER = f.SENDER, //发送者
RECEIVER = f.RECEIVER, //接收者
CREATE_TIME = f.CREATE_TIME, //创建时间
};
...全文
882 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajianchina 2015-06-14
  • 打赏
  • 举报
回复
少敲了一个括号,自己加一下
ajianchina 2015-06-14
  • 打赏
  • 举报
回复
Linq to Sql

if (db.D_BIAO.Any(p=>p.MESSAGE_ID == MESSAGE_ID)
{
    D_BIAO dbiao = db.D_BIAO.Where(p=>p.MESSAGE_ID == MESSAGE_ID).First();
    dbiao.AUDIT_FLAG=变量1值;
    dbiao. AUDIT_NAME=变量2值;
    dbiao.AUDIT_DATE=DateTime.Now();
    dbiao.AUDIT_NOTE=变量3值;
    db.SubmitChanges();
}
else
{
    Console.WriteLine("没有需要更新的记录");
}
  • 打赏
  • 举报
回复
每一种数据库驱动所实现的 linq provider都各自不同,甚至ef的不同版本也不完全相同。但是linq基本上非常一致(尽管有些驱动所实现的语法细节可能少一些、有些则多一些)。所以如果你不说明你使用哪一种provider,那么就不知道你如何update数据。 而你说明provider,其实也就知道这个问题跟linq查询无直接关系了。
  • 打赏
  • 举报
回复
linq是用来查询的,不是用来update的。修改数据实体并且(根据你声明的数据实体的主键去)保存到数据库,跟linq无关。 所以你的问题是出于一个误解。总想着“一步到位”,不想吃饭而想直接吃饱,结果其实是找不到方法。
  • 打赏
  • 举报
回复
就是select出来,然后修改完后保存
var query = ( from f in db.D_BIAO
                        where (f.MESSAGE_ID == MESSAGE_ID)
                         select f).FirstOrDefault();
if(query!=null)
{
      query.AUDIT_FLAG = auditFlag;
      //and so on
}
db.SubmitChanges();

8,494

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧