簡體   English   中英

Linq to Entities-使用主鍵增加一列

[英]Linq to Entities - Increment a column using primary key

我有以下代碼:

    Message message = new Message();
    message.Id = 5;
    message.EntityKey = context.CreateEntityKey("MessageSet", entity);
    message.Votes++;
    context.Attach(entity);
    context.ObjectStateManager.GetObjectStateEntry(entity.EntityKey).SetModifiedProperty("Votes");
    Save();

但是,當然,Vote初始化為0。

如何生成類似

Update Messages set Votes=Votes+1 where Id = 5

?? 謝謝

由於LINQ to Entities是OR映射器,因此通常的想法是您首先查詢需要更新的一個或多個實體,使用代碼中的對象更新它們,然后在ObjectContext上發出Update命令以將對這些實體的更改持久化。 這是關鍵,但通常很難盡早掌握,但是使用諸如實體框架,NHibernate,LINQ to SQL等ORM的原因是消除了編寫SQL的需要,而改為使用對象。

以下是您所需要的:

Message msg = context.Messages.First(m => m.Id == 5);
msg.Votes += 1;

context.SaveChanges();

對SaveChanges的調用將為您生成SQL CUD語句,每次更新,插入和/或刪除一個語句。

我認為您無法直接實現這一目標,但是,您可以使用一些導入功能並使用SP來完成所需的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM