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

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

9
ประเภทสมาชิกที่ระบุ 'วันที่' ไม่ได้รับการสนับสนุนใน LINQ ไปยังเอนทิตี เฉพาะผู้เริ่มต้นสมาชิกเอนทิตีและคุณสมบัติการนำทางเอนทิตี
การใช้รหัสนี้ในEntity Frameworkฉันได้รับข้อผิดพลาดดังต่อไปนี้ ฉันต้องการรับแถวทั้งหมดสำหรับวันที่ระบุDateTimeStartเป็นประเภท DataType ในรูปแบบนี้2013-01-30 12:00:00.000 รหัส: var eventsCustom = eventCustomRepository.FindAllEventsCustomByUniqueStudentReference(userDevice.UniqueStudentReference) .Where(x => x.DateTimeStart.Date == currentDateTime.Date); ข้อผิดพลาด: base {System.SystemException} = {"สมาชิกประเภทที่ระบุ 'Date' ไม่ได้รับการสนับสนุนใน LINQ ไปยัง Entities สนับสนุนเฉพาะ initializers, สมาชิกเอนทิตีและคุณสมบัติการนำทางเอนทิตี"} ความคิดใด ๆ วิธีการแก้ไขหรือไม่

1
การเพิ่มรายการ <t> .add () รายการอื่น
ฉันมีIEnumerable&lt;TravelDetails&gt;และฉันกำลังพยายามเพิ่ม vales ในfor-loop ไปที่ไฟล์List&lt;TravelDetails&gt;. ฉันได้รับข้อผิดพลาด ข้อผิดพลาด 15 อาร์กิวเมนต์ 1: ไม่สามารถแปลงจาก 'System.Collections.Generic.List' เป็น 'TrafficCore.DataObjects.TripDetails' C: \ TrafficNew \ TI 511-Web \ Traffic 2.0 \ 511Traffic \ 511Traffic \ Models \ DrivingTime.cs รหัสของฉันคือ List&lt;TripDetails&gt; tripDetailsCollection = new List&lt;TripDetails&gt;(); foreach (DrivingTimeRoute dtr in dtRoutes) { foreach (Trip trip in dtr.Trips) { foreach (TripPathLink …
138 c#  .net  linq 

4
วิธีรับบันทึกแรกในแต่ละกลุ่มโดยใช้ Linq
พิจารณาบันทึกต่อไปนี้: Id F1 F2 F3 ------------------------------------------------- 1 Nima 1990 10 2 Nima 1990 11 3 Nima 2000 12 4 John 2001 1 5 John 2002 2 6 Sara 2010 4 ฉันต้องการจัดกลุ่มตามF1เขตข้อมูลและจัดเรียงIdและรับเขตข้อมูลทั้งหมดจากระเบียนแรกของกลุ่มที่คล้ายกับระเบียนเหล่านี้: Id F1 F2 F3 ------------------------------------------------- 1 Nima 1990 10 4 John 2001 1 6 Sara 2010 4 ฉันจะทำสิ่งนี้โดยใช้ linq …

9
การเปรียบเทียบสตริงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ใน LINQ-to-SQL
ฉันอ่านแล้วว่ามันไม่ฉลาดที่จะใช้ ToUpper และ ToLower เพื่อทำการเปรียบเทียบสตริงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ แต่ฉันไม่เห็นทางเลือกอื่นเมื่อพูดถึง LINQ-to-SQL อาร์กิวเมนต์ IgnaseCase และ CompareOptions ของ String.Compare จะถูกละเว้นโดย LINQ-to-SQL (ถ้าคุณใช้ฐานข้อมูลที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่คุณจะได้รับการเปรียบเทียบแบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ToLower หรือ ToUpper เป็นตัวเลือกที่ดีที่สุดหรือไม่ ดีกว่าอีกไหม? ฉันคิดว่าฉันอ่านที่ไหนสักแห่งว่า ToUpper ดีกว่า แต่ฉันไม่รู้ว่ามันใช้กับที่นี่หรือไม่ (ฉันกำลังตรวจสอบโค้ดจำนวนมากและทุกคนใช้ ToLower) Dim s = From row In context.Table Where String.Compare(row.Name, "test", StringComparison.InvariantCultureIgnoreCase) = 0 สิ่งนี้แปลเป็นเคียวรี SQL ที่เปรียบเทียบ row.Name กับ "test" และจะไม่ส่งคืน "Test" และ "TEST" …
137 .net  sql  vb.net  linq  linq-to-sql 

7
การกรอก DataSet หรือ DataTable จากชุดผลลัพธ์การสืบค้น LINQ
คุณแสดงแบบสอบถาม LINQ เป็นบริการเว็บ ASMX ได้อย่างไร โดยปกติแล้วจากระดับธุรกิจฉันสามารถส่งคืนพิมพ์ที่พิมพ์DataSetหรือDataTableที่สามารถต่ออนุกรมสำหรับการขนส่งผ่าน ASMX ได้ ฉันจะทำเช่นเดียวกันกับแบบสอบถาม LINQ ได้อย่างไร มีวิธีเติมข้อมูลที่พิมพ์DataSetหรือDataTableผ่านแบบสอบถาม LINQ หรือไม่? public static MyDataTable CallMySproc() { string conn = "..."; MyDatabaseDataContext db = new MyDatabaseDataContext(conn); MyDataTable dt = new MyDataTable(); // execute a sproc via LINQ var query = from dr in db.MySproc().AsEnumerable select dr; // copy …

7
LINQ: ค่าที่แตกต่างกัน
ฉันมีชุดรายการต่อไปนี้จาก XML: id category 5 1 5 3 5 4 5 3 5 3 ฉันต้องการรายชื่อที่แตกต่างกันของรายการเหล่านี้: 5 1 5 3 5 4 ฉันจะแยกประเภทและรหัสใน LINQ ได้อย่างไร
137 linq  distinct 

5
Linq ที่เหมาะสมที่ข้อ
ฉันเขียน linq จำนวนพอสมควรในชีวิตประจำวันของฉัน แต่ส่วนใหญ่เป็นข้อความง่ายๆ ฉันสังเกตเห็นว่าเมื่อใช้ where clauses มีหลายวิธีในการเขียนและแต่ละส่วนมีผลลัพธ์เหมือนกันเท่าที่ฉันสามารถบอกได้ ตัวอย่างเช่น; from x in Collection where x.Age == 10 where x.Name == "Fido" where x.Fat == true select x; ดูเหมือนว่าอย่างน้อยที่สุดเท่าที่ผลลัพธ์จะเกี่ยวข้อง: from x in Collection where x.Age == 10 &amp;&amp; x.Name == "Fido" &amp;&amp; x.Fat == true select x; ดังนั้นมีความแตกต่างนอกเหนือจากไวยากรณ์หรือไม่? ถ้าเป็นเช่นนั้นสไตล์ที่ต้องการคืออะไรและเพราะเหตุใด
134 c#  linq 

3
Linq: GroupBy, Sum และ Count
ฉันมีชุดผลิตภัณฑ์ public class Product { public Product() { } public string ProductCode {get; set;} public decimal Price {get; set; } public string Name {get; set;} } ตอนนี้ฉันต้องการจัดกลุ่มคอลเลคชันตามรหัสผลิตภัณฑ์และส่งคืนออบเจ็กต์ที่มีชื่อหมายเลขหรือผลิตภัณฑ์สำหรับแต่ละรหัสและราคารวมสำหรับแต่ละผลิตภัณฑ์ public class ResultLine{ public ResultLine() { } public string ProductName {get; set;} public string Price {get; set; } public string Quantity {get; set;} …
133 c#  .net  linq 

9
ความแตกต่างใน Linq ขึ้นอยู่กับเพียงหนึ่งฟิลด์ของตาราง
ฉันกำลังพยายามใช้ .distinct ใน Linq เพื่อให้ได้ผลลัพธ์ตามฟิลด์หนึ่งของตาราง (ดังนั้นไม่จำเป็นต้องมีระเบียนที่ซ้ำกันทั้งหมดจากตาราง) ฉันรู้ว่าการเขียนแบบสอบถามพื้นฐานโดยใช้ความแตกต่างดังต่อไปนี้: var query = (from r in table1 orderby r.Text select r).distinct(); แต่ฉันต้องการผลลัพธ์ที่r.textไม่ซ้ำกัน
133 c#  sql  linq 

4
แปลงรายการของวัตถุเป็นอาร์เรย์ของคุณสมบัติของวัตถุอย่างใดอย่างหนึ่ง
สมมติว่าฉันมีชั้นเรียนต่อไปนี้: public class ConfigItemType { public string Name { get; set; } public double SomeOtherThing { get; set; } } จากนั้นฉันก็สร้างรายชื่อคลาสต่อไปนี้ ( List&lt;ConfigItemType&gt; MyList) ตอนนี้ฉันมีวิธีการที่มีลายเซ็นต่อไปนี้: void AggregateValues(string someUnrelatedValue, params string[] listGoesHere) ฉันจะพอดีMyListกับการlistGoesHereใช้ค่าในConfigItemType.Nameเป็นสตริงอาร์เรย์พารามิเตอร์ได้อย่างไร ฉันค่อนข้างแน่ใจว่า Linq สามารถทำได้ .... แต่MyListไม่มีselectวิธีการ (ซึ่งเป็นสิ่งที่ฉันจะใช้)
133 c#  linq 

22
จะนำองค์ประกอบทั้งหมดยกเว้นองค์ประกอบสุดท้ายในลำดับโดยใช้ LINQ ได้อย่างไร
สมมติว่าฉันมีลำดับ IEnumerable&lt;int&gt; sequence = GetSequenceFromExpensiveSource(); // sequence now contains: 0,1,2,3,...,999999,1000000 การหาลำดับไม่ถูกและถูกสร้างขึ้นแบบไดนามิกและฉันต้องการทำซ้ำครั้งเดียวเท่านั้น ฉันต้องการได้ 0 - 999999 (เช่นทุกอย่างยกเว้นองค์ประกอบสุดท้าย) ฉันรู้ว่าฉันสามารถทำสิ่งต่างๆเช่น: sequence.Take(sequence.Count() - 1); แต่ส่งผลให้เกิดการแจงนับสองครั้งในลำดับใหญ่ มีโครงสร้าง LINQ ที่ให้ฉันทำ: sequence.TakeAllButTheLastElement();
131 c#  .net  linq 


8
ลำดับไม่มีองค์ประกอบ?
ฉันกำลังใช้แบบสอบถามเดียวในสองที่เพื่อรับแถวจากฐานข้อมูล BlogPost post = (from p in dc.BlogPosts where p.BlogPostID == ID select p).Single(); แบบสอบถามนี้ใช้ได้ดีเมื่อเรียกแถวเพื่อใส่ข้อมูลลงในกล่องข้อความ แต่จะส่งกลับข้อผิดพลาด "ลำดับที่ไม่มีองค์ประกอบ" เมื่อใช้เพื่อดึงข้อมูลแถวเพื่อแก้ไขและนำกลับไปที่ฐานข้อมูล ฉันไม่เข้าใจว่าเหตุใดจึงอาจพบแถวที่เหมาะสมในอินสแตนซ์หนึ่ง แต่ไม่พบแถวอื่น (ใช้ ASP.NET MVC และ LINQ)
131 c#  linq 

2
รับองค์ประกอบทั้งหมด แต่เป็นองค์ประกอบแรกจากอาร์เรย์
มีนิพจน์ linq ง่ายบรรทัดเดียวเพื่อรับทุกอย่างจากอาร์เรย์ธรรมดายกเว้นองค์ประกอบแรกหรือไม่? for (int i = 1; i &lt;= contents.Length - 1; i++) Message += contents[i]; ฉันแค่อยากจะดูว่ามันง่ายกว่าที่จะควบแน่น
130 c#  linq 

9
เลือกหลายเขตข้อมูลจากรายการใน Linq
ใน ASP.NET C # ฉันมีโครงสร้าง: public struct Data { public int item1; public int item2; public int category_id; public string category_name; } และฉันมีรายชื่อเหล่านั้น ฉันต้องการที่จะเลือกcategory_idและcategory_nameวิ่งDISTINCTและสุดท้ายในORDERBYcategory_name นี่คือสิ่งที่ฉันมีตอนนี้: List&lt;Data&gt; listObject = getData(); string[] catNames = listObject .Select(i=&gt; i.category_name) .Distinct() .OrderByDescending(s =&gt; s) .ToArray(); เห็นได้ชัดว่านี่เป็นเพียงชื่อหมวดหมู่ คำถามของฉันคือฉันจะได้หลายฟิลด์ได้อย่างไรและฉันจะจัดเก็บข้อมูลนี้ในโครงสร้างใด (ไม่ใช่กstring[]) แก้ไข การใช้รายการโครงสร้างไม่ได้กำหนดไว้ในหิน หากจะแนะนำให้เปลี่ยนโครงสร้างข้อมูลสำรองของฉันเพื่อให้การเลือกง่ายขึ้น (ฉันจะเขียนสิ่งเหล่านี้เป็นจำนวนมาก) ฉันยินดีรับคำแนะนำ
128 c#  linq  data-structures 

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