[英]Confusion in assigning primary key values to new entities via 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.