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

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

9
ไม่พบการนำรูปแบบการสืบค้นไปใช้
ในแอปพลิเคชัน Silverlight ของฉันฉันพยายามสร้างการเชื่อมต่อฐานข้อมูลโดยใช้ LINQ ก่อนอื่นฉันเพิ่ม LINQ ใหม่ในคลาส SQL และลากตารางของฉันชื่อ "tblPersoon" เข้าไป จากนั้นในไฟล์บริการของฉันฉันพยายามเรียกใช้แบบสอบถามต่อไปนี้: [OperationContract] public tblPersoon GetPersoonByID(string id) { var query = (from p in tblPersoon where p.id == id select p).Single(); แต่ที่ tblPersoon ทำให้ฉันมีข้อผิดพลาดต่อไปนี้ ไม่พบการใช้งานรูปแบบการสืบค้นสำหรับแหล่งที่มาประเภท 'SilverlightApplication1.Web.tblPersoon' ไม่พบ 'ที่ไหน' และแม้ว่าฉันจะลองทำสิ่งต่อไปนี้: var query = (from p in tblPersoon select p).Single(); มันทำให้ฉันมีข้อผิดพลาดว่าไม่พบ 'เลือก'! …
105 c#  sql  silverlight  wcf  linq 

7
ฉันจะได้รับรายชื่อที่แตกต่างกันตามลำดับจาก DataTable โดยใช้ LINQ ได้อย่างไร
ฉันมีDataTableกับNameคอลัมน์ ฉันต้องการสร้างชุดชื่อเฉพาะที่เรียงตามตัวอักษร แบบสอบถามต่อไปนี้ละเว้นลำดับตามอนุประโยค var names = (from DataRow dr in dataTable.Rows orderby (string)dr["Name"] select (string)dr["Name"]).Distinct(); เหตุใดจึงorderbyไม่ถูกบังคับใช้?
104 c#  linq  .net-3.5 

9
วิธีตรวจสอบว่ามีวัตถุอยู่แล้วในรายการหรือไม่
ฉันมีรายชื่อ List<MyObject> myList และฉันกำลังเพิ่มรายการในรายการและฉันต้องการตรวจสอบว่ามีวัตถุนั้นอยู่ในรายการหรือไม่ ก่อนที่ฉันจะทำสิ่งนี้: myList.Add(nextObject); ฉันต้องการดูว่า nextObject อยู่ในรายการหรือไม่ วัตถุ "MyObject" มีคุณสมบัติหลายอย่าง แต่การเปรียบเทียบจะขึ้นอยู่กับการจับคู่กับคุณสมบัติสองอย่าง วิธีใดเป็นวิธีที่ดีที่สุดในการตรวจสอบก่อนที่ฉันจะเพิ่ม "MyObject" ใหม่ในรายการ "MyObject" นี้ ทางออกเดียวที่ฉันคิดขึ้นคือเปลี่ยนจากรายการเป็นพจนานุกรมจากนั้นทำให้คีย์เป็นสตริงคุณสมบัติที่ต่อกัน (ดูเหมือนจะไม่สง่างามเล็กน้อย) โซลูชันอื่น ๆ ที่สะอาดกว่าโดยใช้รายการหรือ LINQ หรืออย่างอื่น?
104 c#  linq  list 


4
LINQ Ring: Any () เทียบกับ () สำหรับคอลเลกชันขนาดใหญ่
เนื่องจากวัตถุจำนวนมากมีความแตกต่างด้านประสิทธิภาพระหว่างสิ่งต่อไปนี้หรือไม่? คอลเลกชันประกอบด้วย : myCollection.Contains(myElement) นับได้ใด ๆ : myCollection.Any(currentElement => currentElement == myElement)

9
Linq: การเพิ่มเงื่อนไขไปยัง where clause conditionally
ฉันมีคำถามเช่นนี้ (from u in DataContext.Users where u.Division == strUserDiv && u.Age > 18 && u.Height > strHeightinFeet select new DTO_UserMaster { Prop1 = u.Name, }).ToList(); ฉันต้องการเพิ่มเงื่อนไขต่างๆเช่นอายุความสูงโดยพิจารณาว่าเงื่อนไขเหล่านั้นถูกระบุไว้ในวิธีการที่เรียกใช้แบบสอบถามนี้หรือไม่ เงื่อนไขทั้งหมดจะรวมถึงแผนกผู้ใช้ หากระบุอายุฉันต้องการเพิ่มสิ่งนั้นในแบบสอบถาม ในทำนองเดียวกันถ้าระบุความสูงฉันก็ต้องการเพิ่มเช่นกัน หากต้องทำโดยใช้แบบสอบถาม sql ฉันจะใช้ตัวสร้างสตริงเพื่อต่อท้ายคิวรี strSQL หลัก แต่ที่นี่ใน Linq ฉันคิดได้แค่ใช้เงื่อนไข IF ที่ฉันจะเขียนแบบสอบถามเดียวกันสามครั้งโดยแต่ละบล็อก IF มีเงื่อนไขเพิ่มเติม มีวิธีที่ดีกว่านี้หรือไม่?

8
ตรวจสอบว่า IEnumerable หนึ่งตัวมีองค์ประกอบทั้งหมดของ IEnumerable หรือไม่
วิธีใดเป็นวิธีที่เร็วที่สุดในการตรวจสอบว่า IEnumerable หนึ่งตัวมีองค์ประกอบทั้งหมดของ IEnumerable อื่น ๆ หรือไม่เมื่อเปรียบเทียบฟิลด์ / คุณสมบัติของแต่ละองค์ประกอบในทั้งสองคอลเลคชัน public class Item { public string Value; public Item(string value) { Value = value; } } //example usage Item[] List1 = {new Item("1"),new Item("a")}; Item[] List2 = {new Item("a"),new Item("b"),new Item("c"),new Item("1")}; bool Contains(IEnumerable<Item> list1, IEnumerable<Item>, list2) { var list1Values = …
103 c#  .net  linq  ienumerable 

8
รองรับเฉพาะ initializers สมาชิกเอนทิตีและคุณสมบัติการนำทางของเอนทิตีเท่านั้น
ฉันได้รับข้อยกเว้นนี้: ไม่สนับสนุนสมาชิกประเภท 'ชำระเงิน' ที่ระบุใน LINQ ถึงเอนทิตี รองรับเฉพาะ initializers สมาชิกเอนทิตีและคุณสมบัติการนำทางของเอนทิตีเท่านั้น public ActionResult Index() { var debts = storeDB.Orders .Where(o => o.Paid == false) .OrderByDescending(o => o.DateCreated); return View(debts); } คลาส My Model public partial class Order { public bool Paid { get { return TotalPaid >= Total; } } public decimal …

22
ฉันจะใช้ LINQ ประกอบด้วย (สตริง []) แทนประกอบด้วย (สตริง) ได้อย่างไร
ฉันมีคำถามใหญ่ข้อหนึ่ง ฉันได้รับแบบสอบถาม linq ที่จะทำให้ดูเหมือนว่า: from xx in table where xx.uid.ToString().Contains(string[]) select xx ค่าของstring[]อาร์เรย์จะเป็นตัวเลขเช่น (1,45,20,10 ฯลฯ ... ) เริ่มต้นสำหรับการมี.Contains.Contains(string) ฉันต้องการให้ทำสิ่งนี้แทน: .Contains(string[])... แก้ไข:ผู้ใช้รายหนึ่งแนะนำให้เขียนคลาสส่วนขยายสำหรับstring[]. ฉันต้องการเรียนรู้วิธีการ แต่มีใครยินดีที่จะชี้ให้ฉันไปในทิศทางที่ถูกต้อง? แก้ไข: uid จะเป็นตัวเลขด้วย นั่นเป็นเหตุผลว่าทำไมจึงถูกแปลงเป็นสตริง ช่วยใคร?
102 c#  linq  string  contains 

5
Linq เป็น SQL วิธีการทำ“ โดยที่ [คอลัมน์] ใน (รายการค่า)”
ฉันมีฟังก์ชันที่ฉันได้รับรายการรหัสและฉันต้องการส่งคืนรายการที่ตรงกับคำอธิบายที่เชื่อมโยงกับรหัส เช่น: public class CodeData { string CodeId {get; set;} string Description {get; set;} } public List<CodeData> GetCodeDescriptionList(List<string> codeIDs) //Given the list of institution codes, return a list of CodeData //having the given CodeIds } ดังนั้นถ้าฉันสร้าง sql สำหรับสิ่งนี้ด้วยตัวเองฉันก็จะทำสิ่งต่อไปนี้ (โดยที่ in clause มีค่าทั้งหมดในอาร์กิวเมนต์ codeIds): Select CodeId, Description FROM CodeTable WHERE CodeId …
101 linq  linq-to-sql 

19
ฉันจะเรียงลำดับสตริงตามตัวอักษรในขณะที่บันทึกค่าเมื่อสตริงเป็นตัวเลขได้อย่างไร
ฉันกำลังพยายามจัดเรียงอาร์เรย์ของตัวเลขที่เป็นสตริงและฉันต้องการให้เรียงลำดับตามตัวเลข สิ่งที่จับได้คือฉันไม่สามารถแปลงตัวเลขเป็น intได้ นี่คือรหัส: string[] things= new string[] { "105", "101", "102", "103", "90" }; foreach (var thing in things.OrderBy(x => x)) { Console.WriteLine(thing); } เอาต์พุต: 101, 102, 103, 105, 90 ฉันต้องการ: 90, 101, 102, 103, 105 แก้ไข: เอาต์พุตไม่สามารถเป็น 090, 101, 102 ... อัปเดตตัวอย่างโค้ดเป็น "things" แทน "ขนาด" อาร์เรย์สามารถเป็นดังนี้: string[] things= …

2
LINQ - แปลงรายการเป็นพจนานุกรมโดยมีค่าเป็นรายการ
ฉันมี List<MyObject> ที่ฉันดึงมาจากฐานข้อมูล อย่างไรก็ตามฉันต้องการให้คีย์โดยคุณสมบัติใน MyObject เพื่อวัตถุประสงค์ในการจัดกลุ่ม วิธีที่ดีที่สุดสำหรับ LINQ ในการส่งรายการของฉันไปที่: Dictionary<long, List<MyObject>> ฉันมีสิ่งต่อไปนี้: myObjectList.ToDictionary(x => x.KeyedProperty) แต่ผลตอบแทน: Dictionary<long, MyObject>
101 c#  .net  linq 

6
วิธีใช้ IEqualityComparer
ฉันมีระฆังในฐานข้อมูลที่มีหมายเลขเดียวกัน ฉันต้องการรับทั้งหมดโดยไม่ต้องทำซ้ำ ฉันสร้างคลาสเปรียบเทียบเพื่อทำงานนี้ แต่การดำเนินการของฟังก์ชันทำให้เกิดความล่าช้าอย่างมากจากฟังก์ชันโดยไม่แตกต่างจาก 0.6 วินาทีถึง 3.2 วินาที! ฉันทำถูกต้องหรือฉันต้องใช้วิธีอื่น? reg.AddRange( (from a in this.dataContext.reglements join b in this.dataContext.Clients on a.Id_client equals b.Id where a.date_v <= datefin && a.date_v >= datedeb where a.Id_client == b.Id orderby a.date_v descending select new Class_reglement { nom = b.Nom, code = b.code, Numf = a.Numf, …

4
LINQ ตัวดำเนินการที่แตกต่างไม่สนใจตัวพิมพ์หรือไม่
ยกตัวอย่างง่ายๆดังต่อไปนี้: List<string> list = new List<string>() { "One", "Two", "Three", "three", "Four", "Five" }; CaseInsensitiveComparer ignoreCaseComparer = new CaseInsensitiveComparer(); var distinctList = list.Distinct(ignoreCaseComparer as IEqualityComparer<string>).ToList(); ดูเหมือนว่า CaseInsensitiveComparer ไม่ได้ถูกใช้เพื่อทำการเปรียบเทียบแบบไม่คำนึงถึงตัวพิมพ์ ในคำอื่น ๆdistinctList มีหมายเลขเดียวกันของรายการเป็นรายการ แต่ฉันจะคาดหวังเช่น "สาม" และ "สาม" จะถือว่าเท่ากัน ฉันขาดอะไรไปหรือนี่เป็นปัญหากับตัวดำเนินการที่แตกต่างกัน
100 c#  linq  string  comparison  distinct 

6
LINQ ที่ไหนเทียบกับในขณะเดียวกัน
ฉันต้องการทราบความแตกต่างระหว่างวิธีการTakeWhile& WhereLINQ ฉันได้รับข้อมูลต่อไปนี้จาก MSDN แต่มันไม่สมเหตุสมผลสำหรับฉัน Where<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) กรองลำดับของค่าตามเพรดิเคต TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) ส่งคืนองค์ประกอบจากลำดับตราบเท่าที่เงื่อนไขที่ระบุเป็นจริง ยินดีรับฟังทุกความคิดเห็น
99 .net  linq 

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