คำถามติดแท็ก entity-framework

สำหรับคำถามเกี่ยวกับ ADO.NET Entity Framework เครื่องมือ Object-Relational-Mapping (ORM) สำหรับ. NET Framework โปรดเพิ่มแท็กเฉพาะเวอร์ชันหากมี อย่าใช้แท็กนี้สำหรับคำถาม Entity-Framework-core ใช้ entity-framework-core แทน

30
ข้อผิดพลาด MSSQL 'ผู้ให้บริการที่ล้มเหลวในการเปิด'
ฉันถูกใช้.mdfสำหรับเชื่อมต่อกับและdatabase entityClientตอนนี้ฉันต้องการเปลี่ยนสตริงการเชื่อมต่อเพื่อที่จะไม่มี.mdfไฟล์ คือต่อไปนี้connectionStringถูกต้องหรือไม่ <connectionStrings> <!--<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\NData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />--> <add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" /> เนื่องจากฉันได้รับข้อผิดพลาด: ผู้ให้บริการที่พื้นฐานล้มเหลวในการเปิด

9
DbEntityValidationException - ฉันจะบอกได้อย่างง่ายดายว่าอะไรทำให้เกิดข้อผิดพลาดได้อย่างไร
ฉันมีโครงการที่ใช้ Entity Framework ในขณะที่โทรหาSaveChangesฉันDbContextฉันได้รับข้อยกเว้นต่อไปนี้: System.Data.Entity.Validation.DbEntityValidationException: การตรวจสอบล้มเหลวสำหรับเอนทิตีหนึ่งรายการขึ้นไป ดูคุณสมบัติ 'EntityValidationErrors' สำหรับรายละเอียดเพิ่มเติม นี่คือทั้งหมดที่ดีและสวยงาม แต่ฉันไม่ต้องการแนบดีบักเกอร์ทุกครั้งที่เกิดข้อยกเว้นนี้ ยิ่งกว่านั้นในสภาพแวดล้อมการผลิตฉันไม่สามารถแนบดีบักเกอร์ได้อย่างง่ายดายดังนั้นฉันต้องใช้ความพยายามอย่างมากในการสร้างข้อผิดพลาดเหล่านี้ใหม่ ฉันจะดูรายละเอียดที่ซ่อนอยู่ภายในได้DbEntityValidationExceptionอย่างไร

12
Entity Framework: ฐานข้อมูลเดียว, หลาย DbContexts นี่เป็นความคิดที่ไม่ดีเหรอ? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดเมื่อเดือนที่แล้ว ปรับปรุงคำถามนี้ ความประทับใจของฉันไปวันที่ได้รับว่าจะหมายถึงการเป็นตัวแทนของฐานข้อมูลของคุณและทำให้ใบสมัครของคุณถ้าใช้ฐานข้อมูลหนึ่งที่คุณต้องการเพียงหนึ่งDbContextDbContext อย่างไรก็ตามเพื่อนร่วมงานบางคนต้องการแบ่งหน้าที่การใช้งานออกเป็นDbContextคลาสที่แยกกัน ฉันเชื่อว่าสิ่งนี้มาจากสถานที่ที่ดี - ความปรารถนาที่จะรักษาความสะอาดโค้ด - แต่ดูเหมือนว่าจะผันผวน ความกล้าของฉันบอกฉันว่ามันเป็นความคิดที่ไม่ดี แต่น่าเสียดายที่ความรู้สึกของฉันไม่เพียงพอสำหรับการตัดสินใจในการออกแบบ ดังนั้นฉันกำลังมองหา: A) ตัวอย่างที่เป็นรูปธรรมว่าทำไมสิ่งนี้จึงเป็นความคิดที่ไม่ดี B) รับรองว่าทั้งหมดนี้จะทำงานได้ดี


4
ASP.NET DbContext Identity สับสน
แอป MVC 5 เริ่มต้นมาพร้อมกับรหัสชิ้นนี้ใน IdentityModels.cs - รหัสนี้สำหรับการดำเนินการ ASP.NET Identity ทั้งหมดสำหรับแม่แบบเริ่มต้น: public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext() : base("DefaultConnection") { } } ถ้าฉันนั่งร้านตัวควบคุมใหม่โดยใช้มุมมองกับ Entity Framework และสร้าง "บริบทข้อมูลใหม่ ... " ในกล่องโต้ตอบฉันจะได้รับสิ่งนี้ที่สร้างขึ้นสำหรับฉัน: using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; namespace WebApplication1.Models { public class AllTheOtherStuffDbContext : DbContext { …


8
การแปลงค่าเป็นประเภท 'Int32' ล้มเหลวเนื่องจากค่าวัสดุจริงเป็นโมฆะ
ฉันมีรหัสต่อไปนี้ ฉันได้รับข้อผิดพลาด: "การแปลงค่าเป็นประเภท 'Int32' ล้มเหลวเนื่องจากค่าวัสดุเป็นโมฆะพารามิเตอร์ทั่วไปของประเภทผลลัพธ์หรือแบบสอบถามต้องใช้ประเภทที่ไม่สามารถใช้ได้" เมื่อ CreditHistory ตารางไม่มีบันทึก var creditsSum = (from u in context.User join ch in context.CreditHistory on u.ID equals ch.UserID where u.ID == userID select ch.Amount).Sum(); ฉันจะแก้ไขแบบสอบถามเพื่อยอมรับค่า Null ได้อย่างไร

19
ไม่สามารถเปลี่ยนแปลงความสัมพันธ์ได้เนื่องจากคุณสมบัติของ foreign-key หนึ่งรายการหรือมากกว่านั้นไม่สามารถยกเลิกได้
ฉันได้รับข้อผิดพลาดนี้เมื่อฉัน GetById () บนเอนทิตีแล้วตั้งค่าการรวบรวมเอนทิตีลูกเป็นรายการใหม่ของฉันซึ่งมาจากมุมมอง MVC การดำเนินการล้มเหลว: ไม่สามารถเปลี่ยนความสัมพันธ์ได้เนื่องจากคุณสมบัติต่างประเทศหนึ่งรายการขึ้นไปไม่สามารถยกเลิกได้ เมื่อทำการเปลี่ยนแปลงกับความสัมพันธ์คุณสมบัติคีย์ foreign ที่เกี่ยวข้องจะถูกตั้งค่าเป็นค่าว่าง หาก foreign-key ไม่สนับสนุนค่า Null จะต้องกำหนดความสัมพันธ์ใหม่คุณสมบัติ foreign-key ต้องกำหนดค่าอื่นที่ไม่ใช่ค่า Null หรือลบวัตถุที่ไม่เกี่ยวข้องออก ฉันไม่เข้าใจบรรทัดนี้มากนัก: ไม่สามารถเปลี่ยนแปลงความสัมพันธ์ได้เนื่องจากคุณสมบัติของ foreign-key หนึ่งรายการหรือมากกว่านั้นไม่สามารถยกเลิกได้ ทำไมฉันต้องเปลี่ยนความสัมพันธ์ระหว่าง 2 เอนทิตี มันควรจะยังคงเหมือนเดิมตลอดอายุการใช้งานทั้งหมด รหัสข้อยกเว้นที่เกิดขึ้นคือการกำหนดคลาสลูกที่แก้ไขแล้วในคอลเลกชันให้กับคลาสพาเรนต์ที่มีอยู่ หวังว่านี่จะรองรับการลบชั้นเรียนของเด็กการเพิ่มเข้ามาใหม่และการปรับเปลี่ยน ฉันคิดว่า Entity Framework จัดการกับสิ่งนี้ บรรทัดของรหัสสามารถกลั่นไปที่: var thisParent = _repo.GetById(1); thisParent.ChildItems = modifiedParent.ChildItems(); _repo.Save();

6
การตั้งค่าข้อ จำกัด เฉพาะด้วย API อย่างคล่องแคล่ว?
ฉันพยายามสร้าง EF Entity ด้วย Code First และEntityTypeConfigurationใช้ API อย่างคล่องแคล่ว การสร้างคีย์หลักนั้นง่าย แต่ไม่ได้ จำกัด เฉพาะด้วยข้อ จำกัด ที่ไม่เหมือนใคร ฉันเห็นโพสต์เก่าที่แนะนำให้เรียกใช้งานคำสั่ง SQL ดั้งเดิมสำหรับสิ่งนี้ แต่ดูเหมือนจะเอาชนะวัตถุประสงค์ได้ เป็นไปได้กับ EF6

6
รับประเภทข้อผิดพลาดที่แน่นอนจาก DbValidationException
ฉันมีสถานการณ์ที่ฉันเริ่มต้นรูปแบบของฉันใน DatabaseInitializer () เพื่อ EF 4.1 และได้รับข้อผิดพลาดที่น่ารำคาญนี้"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."ดังนั้นฉันไป EntityValidationErrors นี้และมีสนาม{System.Data.Entity.Validation.DbEntityValidationResult}ซึ่งทำให้ผมไม่มีข้อมูลที่เกี่ยวกับสิ่งที่ข้อมูลมันก็ไม่สามารถที่จะเริ่มต้น . มีวิธีรับข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดนี้หรือไม่ หากต้องการล้างสิ่งต่างๆออก: ฉันรู้วิธีแก้ไขปัญหาความยาวสตริง สิ่งที่ฉันถามคือฉันจะได้รับชื่อเขตข้อมูลที่แน่นอนที่ทำลายแบบจำลองได้อย่างไร

6
วิธีการบังคับให้ LINQ Sum () ส่งคืนค่า 0 ในขณะที่การรวบรวมแหล่งข้อมูลว่างเปล่า
โดยทั่วไปเมื่อฉันทำแบบสอบถามต่อไปนี้หากไม่มีโอกาสในการขายตรงกับแบบสอบถามต่อไปนี้จะโยนข้อยกเว้น ในกรณีนี้ฉันต้องการให้ผลรวมเท่ากับ 0 มากกว่าข้อยกเว้นที่ถูกส่งออกไป สิ่งนี้จะเป็นไปได้ในแบบสอบถามเอง - ฉันหมายถึงแทนที่จะเก็บแบบสอบถามและตรวจสอบอยู่query.Any()ใช่ไหม double earnings = db.Leads.Where(l => l.Date.Day == date.Day && l.Date.Month == date.Month && l.Date.Year == date.Year && l.Property.Type == ProtectedPropertyType.Password && l.Property.PropertyId == PropertyId).Sum(l => l.Amount);

12
Entity Framework 4 / POCO - จะเริ่มที่ไหนดี [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันเคยเขียนโปรแกรมมาระยะหนึ่งแล้วและเคยใช้ LINQ-To-SQL และ LINQ-To-Entities มาก่อน (แม้ว่าเมื่อใช้เอนทิตีมันมีความสัมพันธ์แบบ Entity / Table 1-1 - กล่าวคือไม่แตกต่างจาก L2SQL มาก) ฉันอ่านเกี่ยวกับ Inversion of Control, หน่วยงาน, POCO และรูปแบบพื้นที่เก็บข้อมูลจำนวนมากและต้องการใช้วิธีการนี้ในแอปพลิเคชันใหม่ของฉัน สิ่งที่ฉันกำลังดิ้นรนคือการหาคู่มือเริ่มต้นที่ชัดเจนและกระชับสำหรับ EF4 ซึ่งไม่ถือว่าเป็นความรู้ของ EF1 คำถามเฉพาะที่ฉันต้องการคำตอบคือ: รหัสแรก / รุ่นแรก ข้อดี / ข้อเสียเกี่ยวกับ EF4 (เช่นจะเกิดอะไรขึ้นถ้าฉันทำรหัสก่อนเปลี่ยนรหัสในภายหลังและจำเป็นต้องสร้างแบบจำลองฐานข้อมูลของฉันใหม่ - ข้อมูลได้รับการเก็บรักษาและแปลงหรือลดลงหรือไม่) สมมติว่าฉันจะใช้รหัสก่อน (ฉันต้องการดูว่า EF4 แปลงให้เป็น …

4
ความแตกต่างระหว่าง. ToList (), .AsEnumerable (), AsQueryable () คืออะไร
ฉันรู้ถึงความแตกต่างบางอย่างของ LINQ กับเอนทิตีและ LINQ กับออบเจกต์ซึ่งการใช้งานครั้งแรกIQueryableและการใช้งานครั้งที่สองIEnumerableและขอบเขตคำถามของฉันอยู่ภายใน EF 5 คำถามของฉันคือความแตกต่างทางเทคนิคของ 3 วิธีดังกล่าวอย่างไร ฉันเห็นว่าในหลาย ๆ สถานการณ์พวกเขาทั้งหมดทำงาน ฉันเห็นการใช้ชุดค่าผสมของพวกเขาเช่น.ToList().AsQueryable()กัน วิธีการเหล่านั้นหมายถึงอะไรกันแน่? มีปัญหาเรื่องประสิทธิภาพหรืออะไรที่จะนำไปสู่การใช้อันใดอันหนึ่ง? ทำไมคนเราถึงใช้ตัวอย่างเช่น.ToList().AsQueryable()แทนที่จะเป็น.AsQueryable()?

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(); ฉันไม่ทราบว่าข้อผิดพลาดหมายถึงอะไรและส่วนใหญ่จะแก้ไขได้อย่างไร ความช่วยเหลือใด ๆ


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