سؤال

والسؤال بسيط، هل من الممكن لتحقيق هذا الاستعلام هذا مع الكيان الإطار عند تحديث كيان واحد؟

update test set value = value + 1 where id = 10
هل كانت مفيدة؟

المحلول

وليس في الواقع تحت هذا النموذج لا.

وسيكون لديك لتحديد كافة الكيانات التي تطابق المعايير الخاصة بك، foreach عليها وتحديثها.

إذا كنت تبحث عن شيء من شأنها أن تفعل ذلك الحق في DB لمجموعة الخاصة بك يمكن أن تكون ضخمة، سيكون لديك لاستخدام SQL مباشرة. (لا أتذكر إذا EF لديه وسيلة لتنفيذ استعلامات UPDATE مباشرة الطريق ينق إلى SQL لا).

نصائح أخرى

استخدم ميزة دفعة تحديث لل إطار الكيان الموسعة مكتبة ، مثل هذا:

dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 });

وينبغي أن يكون، وسوف يكون فقط قليلا أكثر مقيدة بشكل عام.

var myEntity = context.First(item => item.id == 10);
myEntity.value += 1;
context.SaveChanges();

ويجب أن تنتج SQL مماثل، يمكنك مشاهدة ملفات التعريف لمعرفة ما يجري بالفعل ولدت SQL، ولكن يجب أن تكون مشابهة جدا لبيانكم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top