คำถามติดแท็ก linq

Language Integrated Query (LINQ) เป็นส่วนประกอบ Microsoft .NET Framework ที่เพิ่มความสามารถในการสอบถามข้อมูลดั้งเดิมในภาษา. NET โปรดพิจารณาใช้แท็กที่มีรายละเอียดเพิ่มเติมตามความเหมาะสมเช่น [linq-to-sql], [linq-to-entity] / [entity-framework] หรือ [plinq]

3
ฉันจะคืนค่าฟิลด์ 'id' หลังจากแทรก LINQ ได้หรือไม่
เมื่อฉันป้อนวัตถุลงในฐานข้อมูลด้วย Linq-to-SQL ฉันจะได้รับรหัสที่ฉันเพิ่งแทรกโดยไม่ต้องทำการเรียก db อื่นได้หรือไม่ ฉันคิดว่ามันค่อนข้างง่ายฉันไม่รู้
182 c#  .net  linq  linq-to-sql 

2
Linq to Entities เข้าร่วม vs groupjoin
ฉันค้นเว็บแล้ว แต่ฉันยังหาคำตอบง่าย ๆ ไม่ได้ มีคนช่วยอธิบายด้วยภาษาอังกฤษง่ายๆGroupJoinได้ไหม? มันแตกต่างจากภายในทั่วไปJoinอย่างไร ใช้บ่อยไหม มันเป็นเพียงไวยากรณ์ของวิธีการ? สิ่งที่เกี่ยวกับไวยากรณ์แบบสอบถาม ตัวอย่างรหัส c # น่าจะดี

9
“ การแสดงออกแลมบ์ดาที่มีเนื้อหาข้อความไม่สามารถแปลงเป็นต้นไม้แสดงออกได้”
ในการใช้EntityFrameworkฉันได้รับข้อผิดพลาด " A lambda expression with a statement body cannot be converted to an expression tree" เมื่อพยายามรวบรวมรหัสต่อไปนี้: Obj[] myArray = objects.Select(o => { var someLocalVar = o.someVar; return new Obj() { Var1 = someLocalVar, Var2 = o.var2 }; }).ToArray(); ฉันไม่ทราบว่าข้อผิดพลาดหมายถึงอะไรและส่วนใหญ่จะแก้ไขได้อย่างไร ความช่วยเหลือใด ๆ

5
Async กำลังรอการเลือก linq
ฉันต้องการแก้ไขโปรแกรมที่มีอยู่และมันมีรหัสต่อไปนี้: var inputs = events.Select(async ev => await ProcessEventAsync(ev)) .Select(t => t.Result) .Where(i => i != null) .ToList(); แต่สิ่งนี้ดูแปลกสำหรับฉันมากก่อนอื่นให้ใช้asyncและawaitเลือก ตามคำตอบของสตีเฟ่นเคลียร์ฉันควรจะทิ้งมันไว้ จากนั้นวินาทีSelectที่เลือกผลลัพธ์ นี่ไม่ได้หมายความว่างานนั้นไม่ได้เป็นแบบอะซิงก์เลยและดำเนินการแบบซิงโครนัส (ไม่ต้องใช้ความพยายามมากนัก) หรืองานนั้นจะทำงานแบบอะซิงโครนัส ฉันควรเขียนโค้ดด้านบนเหมือนดังต่อไปนี้ตามคำตอบอื่นโดย Stephen Cleary : var tasks = await Task.WhenAll(events.Select(ev => ProcessEventAsync(ev))); var inputs = tasks.Where(result => result != null).ToList(); และมันเหมือนกันหมดอย่างนี้หรือไม่? var inputs = (await Task.WhenAll(events.Select(ev => …
180 c#  linq  asynchronous 

4
Entity framework linq query รวม () เอนทิตีลูกหลายรายการ
นี่อาจเป็นคำถามที่เข้าใจง่ายมาก แต่วิธีที่ดีในการรวมหลายเอนทิตีเด็กเมื่อเขียนเคียวรีที่ครอบคลุมสามระดับ (หรือมากกว่านั้น) คืออะไร คือผมมี 4 ตาราง: Company, Employee, Employee_CarและEmployee_Country บริษัท มีความสัมพันธ์แบบ 1: m กับพนักงาน พนักงานมีความสัมพันธ์แบบ 1: m กับ Employee_Car และ Employee_Country ถ้าฉันต้องการเขียนแบบสอบถามที่ส่งคืนข้อมูลจากทั้ง 4 ตารางฉันกำลังเขียน: Company company = context.Companies .Include("Employee.Employee_Car") .Include("Employee.Employee_Country") .FirstOrDefault(c => c.Id == companyID); จะต้องมีวิธีที่สง่างามมากขึ้น! นี่เป็นเวลานานและสร้าง SQL ที่น่ากลัว ฉันใช้ EF4 กับ VS 2010

17
สูงสุดหรือค่าเริ่มต้น
วิธีที่ดีที่สุดในการรับค่า Max จากคิวรี LINQ ที่อาจไม่ส่งคืนแถวคืออะไร ถ้าฉันทำ Dim x = (From y In context.MyTable _ Where y.MyField = value _ Select y.MyCounter).Max ฉันได้รับข้อผิดพลาดเมื่อเคียวรีส่งคืนไม่มีแถว ฉันทำได้ Dim x = (From y In context.MyTable _ Where y.MyField = value _ Select y.MyCounter _ Order By MyCounter Descending).FirstOrDefault แต่นั่นทำให้รู้สึกป้านเล็กน้อยสำหรับคำของ่าย ๆ ฉันพลาดวิธีที่ดีกว่าในการทำสิ่งนี้หรือไม่? UPDATE: นี่คือเรื่องราวย้อนหลัง: ฉันกำลังพยายามดึงตัวนับสิทธิ์ต่อไปจากตารางลูก (ระบบเดิมอย่าเริ่มฉัน …
176 c#  .net  linq  linq-to-sql 

12
ToList () - สร้างรายการใหม่หรือไม่
สมมติว่าฉันมีชั้นเรียน public class MyObject { public int SimpleInt{get;set;} } และฉันมีList<MyObject>และฉันToList()มันแล้วเปลี่ยนหนึ่งในการSimpleIntเปลี่ยนแปลงของฉันจะถูกเผยแพร่กลับไปยังรายการเดิม กล่าวอีกนัยหนึ่งผลลัพธ์ของวิธีการต่อไปนี้คืออะไร? public void RunChangeList() { var objs = new List<MyObject>(){new MyObject(){SimpleInt=0}}; var whatInt = ChangeToList(objs ); } public int ChangeToList(List<MyObject> objects) { var objectList = objects.ToList(); objectList[0].SimpleInt=5; return objects[0].SimpleInt; } ทำไม? P / S: ฉันขอโทษถ้ามันดูเหมือนจะหาที่ชัดเจน แต่ตอนนี้ฉันไม่มีคอมไพเลอร์กับฉัน ...
176 c#  linq 

11
ค่าส่งคืนสูงสุดหากแบบสอบถามว่างเปล่า
ฉันมีคำถามนี้: int maxShoeSize = Workers .Where(x => x.CompanyId == 8) .Max(x => x.ShoeSize); จะเกิดอะไรขึ้นmaxShoeSizeถ้า บริษัท 8 ไม่มีพนักงานเลย? อัปเดต: ฉันจะเปลี่ยนคิวรีได้อย่างไรเพื่อให้ได้ 0 และไม่ใช่ข้อยกเว้น

5
รับรายการค่าที่แตกต่างในรายการ
ใน C # สมมติว่าฉันมีคลาสที่เรียกว่า Note พร้อมตัวแปรสมาชิก String สามตัว public class Note { public string Title; public string Author; public string Text; } และฉันมีรายการประเภทหมายเหตุ: List<Note> Notes = new List<Note>(); อะไรจะเป็นวิธีที่สะอาดที่สุดในการรับรายการค่าที่แตกต่างทั้งหมดในคอลัมน์ผู้แต่ง ฉันสามารถวนซ้ำในรายการและเพิ่มค่าทั้งหมดที่ไม่ซ้ำกับรายการของสตริงอื่น แต่สิ่งนี้ดูสกปรกและไม่มีประสิทธิภาพ ฉันมีความรู้สึกว่ามีสิ่งก่อสร้าง Linq ที่น่าอัศจรรย์ซึ่งจะทำสิ่งนี้ในบรรทัดเดียว แต่ฉันไม่สามารถคิดอะไรได้เลย
175 c#  linq  list  distinct 


3
เลือกพจนานุกรม <T1, T2> ด้วย LINQ
ฉันใช้คีย์เวิร์ด "select" และวิธีการขยายเพื่อส่งคืนIEnumerable&lt;T&gt;ด้วย LINQ แต่ฉันต้องการส่งคืน generic Dictionary&lt;T1, T2&gt;และไม่สามารถหาคำตอบได้ ตัวอย่างฉันเรียนรู้สิ่งนี้จากการใช้บางสิ่งในรูปแบบที่คล้ายกับสิ่งต่อไปนี้: IEnumerable&lt;T&gt; coll = from x in y select new SomeClass{ prop1 = value1, prop2 = value2 }; ฉันทำสิ่งเดียวกันด้วยวิธีการขยาย ฉันคิดว่าเนื่องจากรายการใน a Dictionary&lt;T1, T2&gt;สามารถทำซ้ำได้เนื่องจากKeyValuePair&lt;T1, T2&gt;ฉันสามารถแทนที่ "SomeClass" ในตัวอย่างด้านบนด้วย " new KeyValuePair&lt;T1, T2&gt; { ..." แต่นั่นไม่ได้ผล (คีย์และค่าถูกทำเครื่องหมายว่าอ่านได้อย่างเดียวดังนั้นฉันจึงไม่สามารถรวบรวมรหัสนี้ได้ ) เป็นไปได้หรือฉันต้องทำหลายขั้นตอน? ขอบคุณ
171 c#  .net  linq  generics 

6
เป็นไปได้ไหมที่จะใช้ Pivot data โดยใช้ LINQ
ฉันสงสัยว่ามันเป็นไปได้ที่จะใช้ LINQ เพื่อหมุนข้อมูลจากเค้าโครงต่อไปนี้: CustID | OrderDate | Qty 1 | 1/1/2008 | 100 2 | 1/2/2008 | 200 1 | 2/2/2008 | 350 2 | 2/28/2008 | 221 1 | 3/12/2008 | 250 2 | 3/15/2008 | 2150 เป็นอะไรเช่นนี้: CustID | Jan- 2008 | Feb- 2008 | Mar - 2008 …
171 linq  pivot-table 

5
ฉันจะใช้ Linq เพื่อรับรายการคุณสมบัติที่ไม่ซ้ำจากรายการวัตถุได้อย่างไร
ฉันกำลังพยายามใช้ Linq เพื่อส่งกลับรายการรหัสที่ระบุรายการของวัตถุที่ id เป็นคุณสมบัติ ฉันต้องการที่จะสามารถทำเช่นนี้ได้โดยไม่ต้องวนลูปผ่านแต่ละวัตถุและดึงรหัสที่เป็นเอกลักษณ์ที่ฉันพบ ฉันมีรายการของวัตถุประเภท MyClass และหนึ่งในคุณสมบัติของคลาสนี้คือ ID public class MyClass { public int ID { get; set; } } สิ่งที่ฉันต้องการจะทำคือเขียนแบบสอบถาม Linq เพื่อส่งรายการรหัสเหล่านั้นกลับมาให้ฉัน ฉันจะทำIList&lt;MyClass&gt;เช่นนั้นได้อย่างไรเมื่อมันคืนค่าIEnumerable&lt;int&gt;ของรหัส? ฉันแน่ใจว่าต้องเป็นไปได้ที่จะทำในหนึ่งหรือสองบรรทัดโดยใช้ Linq แทนที่จะวนซ้ำแต่ละรายการในรายการ MyClass และเพิ่มค่าที่ไม่ซ้ำกันลงในรายการ ความช่วยเหลือใด ๆ ในการสร้างโซลูชันที่สง่างามจะได้รับการชื่นชมอย่างมาก!
171 linq  class  list  c#-3.0  properties 

5
Linq เลือกวัตถุในรายการที่มีอยู่ใน (A, B, C)
ordersฉันมีรายชื่อของ ฉันต้องการเลือกordersตามสถานะชุดคำสั่งซื้อ ดังนั้นโดยพื้นฐานแล้ว select orders where order.StatusCode in ("A", "B", "C") // Filter the orders based on the order status var filteredOrders = from order in orders.Order where order.StatusCode.????????("A", "B", "C") select order;

5
LINQ:“ มี” และแบบสอบถามแลมบ์ดา
ฉันมีที่เรียกว่าList&lt;BuildingStatus&gt; buildingStatusฉันต้องการตรวจสอบว่ามีสถานะที่รหัสถ่าน (คืนโดยGetCharCode()) เท่ากับตัวแปรบางอย่างหรือv.Statusไม่ มีวิธีในการทำเช่นนี้ตามบรรทัดของรหัส (ไม่รวบรวม) ด้านล่าง? buildingStatus.Contains(item =&gt; item.GetCharValue() == v.Status)
168 c#  .net  list  linq  lambda 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.