[英]Entity Framework with LINQ query
改變/改變2有什么區別?
using (var context = new NORTHWNDEntities())
{
var change = context.Regions.Where(r => r.RegionDescription == "East").ToList();
var change2 = (from r in context.Regions where r.RegionDescription == "East" select new {r.RegionID, r.RegionDescription }).ToList();
foreach (var p in change2)
{
p.RegionDescription = "West";
}
context.SaveChanges();
}
當我試圖在foreach循環中對change2進行更新時出現錯誤:
屬性或索引器'......'無法分配 - 它是只讀的
它適用於lambda的早期版本。 我怎樣才能改變它?
var change2 = (from r in context.Regions
where r.RegionDescription == "East"
select new {r.RegionID, r.RegionDescription }).ToList();
您將返回匿名類型。 匿名類型屬性是只讀的。 如果要更改值,則需要返回已定義的實際類型。
您可以new
其他類似new Region
或只返回r
var change2 = (from r in context.Regions
where r.RegionDescription == "East"
select r).ToList();
var change2 = (from r in context.Regions
where r.RegionDescription == "East"
select new Region {.RegionID = r.RegionID,
.RegionDescription = r.RegionDescription }).ToList();
change2返回一個不可變的匿名類型。 要修改該值,您需要編寫:
var change2 = (from r in context.Regions where r.RegionDescription == "East" select r).ToList();
這相當於change1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.