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

LINQ เป็น SQL เป็นส่วนประกอบของ. NET Framework เวอร์ชัน 3.5 ที่มีโครงสร้างพื้นฐานรันไทม์สำหรับการจัดการข้อมูลเชิงสัมพันธ์เป็นอ็อบเจ็กต์ที่จัดเก็บใน Microsoft SQL Server

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

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 

5
LINQ - ซ้ายเข้าร่วมจัดกลุ่มตามและนับ
สมมติว่าฉันมี SQL นี้: SELECT p.ParentId, COUNT(c.ChildId) FROM ParentTable p LEFT OUTER JOIN ChildTable c ON p.ParentId = c.ChildParentId GROUP BY p.ParentId ฉันจะแปลสิ่งนี้เป็น LINQ เป็น SQL ได้อย่างไร ฉันติดอยู่ที่ COUNT (c.ChildId), SQL ที่สร้างขึ้นดูเหมือนว่าจะส่งออก COUNT (*) เสมอ นี่คือสิ่งที่ฉันได้รับ: from p in context.ParentTable join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1 from …
166 c#  .net  linq  linq-to-sql 

6
Linq ถึง Sql: การรวมภายนอกด้านซ้ายหลายรายการ
ฉันมีปัญหาในการหาวิธีใช้การรวมภายนอกด้านซ้ายมากกว่าหนึ่งรายการโดยใช้ LINQ กับ SQL ฉันเข้าใจวิธีใช้การรวมภายนอกหนึ่งครั้ง ฉันใช้ VB.NET ด้านล่างเป็นไวยากรณ์ SQL ของฉัน T-SQL SELECT o.OrderNumber, v.VendorName, s.StatusName FROM Orders o LEFT OUTER JOIN Vendors v ON v.Id = o.VendorId LEFT OUTER JOIN Status s ON s.Id = o.StatusId WHERE o.OrderNumber >= 100000 AND o.OrderNumber <= 200000

6
LINQ ไปยัง SQL - Left Outer Join พร้อมกับเงื่อนไขการเข้าร่วมหลายแบบ
ฉันมี SQL ต่อไปนี้ซึ่งฉันพยายามจะแปลเป็น LINQ: SELECT f.value FROM period as p LEFT OUTER JOIN facts AS f ON p.id = f.periodid AND f.otherid = 17 WHERE p.companyid = 100 ฉันเห็นการใช้งานโดยทั่วไปของการเข้าร่วมด้านนอกด้านซ้าย (เช่น. into x from y in x.DefaultIfEmpty()ฯลฯ ) แต่ฉันไม่แน่ใจว่าจะแนะนำเงื่อนไขการเข้าร่วมอื่น ๆ ได้อย่างไร ( AND f.otherid = 17) แก้ไข ทำไมAND f.otherid = 17ส่วนเงื่อนไขของ …
148 c#  sql  linq  linq-to-sql  outer-join 


6
LINQ ไปยัง SQL Left Outer เข้าร่วม
แบบสอบถามนี้เทียบเท่ากับการLEFT OUTERเข้าร่วมหรือไม่ //assuming that I have a parameter named 'invoiceId' of type int from c in SupportCases let invoice = c.Invoices.FirstOrDefault(i=> i.Id == invoiceId) where (invoiceId == 0 || invoice != null) select new { Id = c.Id , InvoiceId = invoice == null ? 0 : invoice.Id }

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 

8
LINQ เป็น SQL: การรวมหลายรายการในหลายคอลัมน์ เป็นไปได้หรือไม่
ได้รับ: ตารางที่TABLE_1มีชื่อคอลัมน์ต่อไปนี้: ID ColumnA ColumnB ColumnC ฉันมีแบบสอบถาม SQL ที่TABLE_1ร่วมกับตัวเองตามครั้งที่สองออกจากColumnA, ,ColumnB ColumnCข้อความค้นหาอาจมีลักษณะดังนี้: Select t1.ID, t2.ID, t3.ID From TABLE_1 t1 Left Join TABLE_1 t2 On t1.ColumnA = t2.ColumnA And t1.ColumnB = t2.ColumnB And t1.ColumnC = t2.ColumnC Left Join TABLE_1 t3 On t2.ColumnA = t3.ColumnA And t2.ColumnB = t3.ColumnB And t2.ColumnC = t3.ColumnC …


10
วิธีที่มีประสิทธิภาพในการใช้เพจจิ้ง
ฉันควรใช้ LINQ Skip()และTake()เมธอดในการเพจหรือใช้เพจจิ้งของตัวเองกับคิวรี SQL? ข้อใดมีประสิทธิภาพสูงสุด ทำไมฉันถึงเลือกอย่างใดอย่างหนึ่ง ฉันใช้ SQL Server 2008, ASP.NET MVC และ LINQ

9
NHibernate เทียบกับ LINQ เป็น SQL
ในฐานะคนที่ไม่ได้ใช้เทคโนโลยีอย่างใดอย่างหนึ่งในโครงการในโลกแห่งความเป็นจริงฉันสงสัยว่ามีใครรู้บ้างว่าทั้งสองนี้เสริมกันอย่างไรและฟังก์ชันการทำงานของพวกเขาทับซ้อนกันมากแค่ไหน?

5
วิธีเลือกเฉพาะระเบียนที่มีวันที่สูงสุดใน LINQ
ฉันมีตาราง 'lasttraces' พร้อมช่องต่อไปนี้ Id, AccountId, Version, DownloadNo, Date ข้อมูลมีลักษณะดังนี้: 28092|15240000|1.0.7.1782|2009040004731|2009-01-20 13:10:22.000 28094|61615000|1.0.7.1782|2009040007696|2009-01-20 13:11:38.000 28095|95317000|1.0.7.1782|2009040007695|2009-01-20 13:10:18.000 28101|15240000|1.0.7.1782|2009040004740|2009-01-20 14:10:22.000 28103|61615000|1.0.7.1782|2009040007690|2009-01-20 14:11:38.000 28104|95317000|1.0.7.1782|2009040007710|2009-01-20 14:10:18.000 ฉันจะรับเฉพาะ Lasttrace ของทุก AccountId ในLINQในLINQได้อย่างไร (อันที่มีวันที่สูงสุด)
117 c#  .net  linq  linq-to-sql 

13
วิธีการจัดเก็บรายการในคอลัมน์ของตารางฐานข้อมูล
ดังนั้นจากคำตอบของ Mehrdad สำหรับคำถามที่เกี่ยวข้องฉันเข้าใจว่าคอลัมน์ตารางฐานข้อมูล "ถูกต้อง" ไม่ได้เก็บรายการไว้ แต่คุณควรสร้างตารางอื่นที่เก็บองค์ประกอบของรายการดังกล่าวได้อย่างมีประสิทธิภาพจากนั้นเชื่อมโยงโดยตรงหรือผ่านตารางทางแยก อย่างไรก็ตามประเภทของรายการที่ฉันต้องการสร้างจะประกอบด้วยรายการที่ไม่ซ้ำกัน (ไม่เหมือนกับผลไม้ของคำถามที่เชื่อมโยงตัวอย่าง). นอกจากนี้รายการในรายการของฉันยังถูกจัดเรียงอย่างชัดเจนซึ่งหมายความว่าหากฉันเก็บองค์ประกอบไว้ในตารางอื่นฉันจะต้องจัดเรียงทุกครั้งที่เข้าถึง ในที่สุดรายการก็เป็นแบบปรมาณูเมื่อใดก็ตามที่ฉันต้องการเข้าถึงรายการฉันต้องการเข้าถึงรายการทั้งหมดแทนที่จะเป็นเพียงชิ้นส่วน - ดังนั้นจึงดูเหมือนโง่ที่ต้องออกแบบสอบถามฐานข้อมูลเพื่อรวบรวมชิ้นส่วนของ รายการ. โซลูชันของ AKX (ลิงก์ด้านบน) คือการทำให้รายการเป็นอนุกรมและจัดเก็บไว้ในคอลัมน์ไบนารี แต่สิ่งนี้ก็ดูเหมือนจะไม่สะดวกเช่นกันเพราะหมายความว่าฉันต้องกังวลเกี่ยวกับการทำให้เป็นอนุกรมและการแยกส่วน มีทางออกที่ดีกว่านี้หรือไม่? หากมีคือไม่มีทางออกที่ดีกว่าแล้วทำไม? ดูเหมือนว่าปัญหานี้จะเกิดขึ้นเป็นครั้งคราว ... ข้อมูลเพิ่มเติมเล็กน้อยเพื่อให้คุณรู้ว่าฉันมาจากไหน ทันทีที่ฉันเพิ่งเริ่มทำความเข้าใจ SQL และฐานข้อมูลโดยทั่วไปฉันก็เปิดใช้ LINQ เป็น SQL และตอนนี้ฉันรู้สึกเสียเล็กน้อยเพราะฉันคาดหวังว่าจะจัดการกับโมเดลอ็อบเจ็กต์การเขียนโปรแกรมของฉันโดยไม่ต้องคิดว่าอ็อบเจ็กต์ จะถูกสอบถามหรือเก็บไว้ในฐานข้อมูล ขอบคุณทุกคน! จอห์น อัปเดต: ดังนั้นในคำตอบแรกที่ฉันได้รับคำตอบฉันเห็นว่า "คุณสามารถไปเส้นทาง CSV / XML ได้ ... แต่อย่า!" ตอนนี้ฉันกำลังหาคำอธิบายว่าทำไม ชี้ให้ฉันดูข้อมูลอ้างอิงที่ดี นอกจากนี้เพื่อให้คุณมีความคิดที่ดีขึ้นว่าฉันกำลังทำอะไรอยู่: ในฐานข้อมูลของฉันฉันมีตารางฟังก์ชันที่จะมีรายการคู่ (x, y) (ตารางจะมีข้อมูลอื่น ๆ …

15
สุ่มแถวจาก Linq ถึง Sql
วิธีใดที่ดีที่สุด (และเร็วที่สุด) ในการดึงข้อมูลแถวสุ่มโดยใช้ Linq เป็น SQL เมื่อฉันมีเงื่อนไขเช่นบางฟิลด์ต้องเป็นจริง
112 c#  .net  linq-to-sql 

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