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

แท็กนี้มีไว้สำหรับ ADO.NET Entity Framework 4.1 ซึ่งเป็นรุ่นแรกของ EF ที่จัดส่งแยกจากกรอบงาน. NET สร้างจาก Entity Framework หลักที่รวมอยู่ใน. NET 4.0 และเผยแพร่สู่สาธารณะในเดือนมีนาคม 2554

29
การตรวจสอบล้มเหลวสำหรับเอนทิตีอย่างน้อยหนึ่งรายการ ดูคุณสมบัติ 'EntityValidationErrors' สำหรับรายละเอียดเพิ่มเติม
ฉันมีข้อผิดพลาดนี้เมื่อทำการ seed ฐานข้อมูลด้วยรหัสแรก การตรวจสอบล้มเหลวสำหรับเอนทิตีอย่างน้อยหนึ่งรายการ ดูคุณสมบัติ 'EntityValidationErrors' สำหรับรายละเอียดเพิ่มเติม ความซื่อสัตย์ฉันไม่รู้วิธีตรวจสอบเนื้อหาของข้อผิดพลาดในการตรวจสอบความถูกต้อง Visual Studio แสดงให้ฉันเห็นว่ามันเป็นอาร์เรย์ที่มีวัตถุ 8 รายการดังนั้นจึงมีข้อผิดพลาดในการตรวจสอบ 8 ข้อ นี่เป็นการทำงานกับรุ่นก่อนหน้าของฉัน แต่ฉันทำการเปลี่ยนแปลงเล็กน้อยที่ฉันอธิบายด้านล่าง: ฉันมีสถานะเรียกว่าสถานะฉันเปลี่ยนเป็นชั้นที่เรียกว่าสถานะ ฉันเปลี่ยนคลาสผู้สมัครตำแหน่งประวัติเพื่อให้มี 2 foreign key เป็นตารางเดียวกัน ขอโทษทีฉันสำหรับรหัสยาว แต่ฉันต้องวางทั้งหมด ข้อยกเว้นจะถูกโยนในบรรทัดสุดท้ายของรหัสต่อไปนี้ namespace Data.Model { public class Position { [DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.Identity)] public int PositionID { get; set; } [Required(ErrorMessage = "Position name is required.")] [StringLength(20, MinimumLength = …

10
รหัสเป็นอันดับแรกเทียบกับรุ่น / ฐานข้อมูลก่อน [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน12 เดือนที่ผ่านมา ข้อดีและข้อเสียของการใช้ Entity Framework 4.1 Code-first over Model / Database-first ด้วยไดอะแกรม EDMX คืออะไร ฉันพยายามเข้าใจวิธีการทั้งหมดในการสร้างชั้นการเข้าถึงข้อมูลโดยใช้ EF 4.1 IoCฉันใช้รูปแบบและพื้นที่เก็บข้อมูล ฉันรู้ว่าฉันสามารถใช้วิธีการแบบรหัสแรก: กำหนดเอนทิตีและบริบทด้วยมือของฉันและใช้ModelBuilderเพื่อปรับสคีมา ฉันยังสามารถสร้างEDMXไดอะแกรมและเลือกขั้นตอนการสร้างรหัสที่ใช้เทมเพลต T4 เพื่อสร้างPOCOคลาสเดียวกัน ในทั้งสองกรณีผมจบลงด้วยPOCOวัตถุที่ไม่เชื่อเรื่องพระเจ้าและบริบทที่เกิดขึ้นจากORMDbContext ฐานข้อมูลดูเหมือนว่าจะน่าสนใจที่สุดตั้งแต่ฉันสามารถออกแบบฐานข้อมูลใน Enterprise Manager ได้อย่างรวดเร็วซิงค์โมเดลและปรับแต่งมันโดยใช้นักออกแบบ แล้วความแตกต่างระหว่างสองแนวทางนี้คืออะไร? มันเกี่ยวกับการตั้งค่า VS2010 กับ Enterprise Manager หรือไม่?

2
ละเว้นคลาสของคุณสมบัติใน Entity Framework 4.1 Code First
ความเข้าใจของฉันคือว่า[NotMapped]แอ็ตทริบิวต์ไม่สามารถใช้ได้จนกว่าจะถึง EF 5 ซึ่งปัจจุบันเป็น CTP ดังนั้นเราจึงไม่สามารถใช้มันในการผลิตได้ ฉันจะทำเครื่องหมายคุณสมบัติใน EF 4.1 ที่จะเพิกเฉยได้อย่างไร UPDATE:ฉันสังเกตเห็นสิ่งแปลก ๆ ผมได้[NotMapped]แอตทริบิวต์การทำงาน แต่ด้วยเหตุผลบางอย่าง EF 4.1 ยังคงสร้างคอลัมน์ชื่อทิ้งในฐานข้อมูลแม้ว่าจะมีเครื่องหมายpublic bool Disposed { get; private set; } [NotMapped]ชั้นเรียนดำเนินการอย่างIDisposeableแน่นอน แต่ฉันไม่เห็นว่ามันจะมีความสำคัญอย่างไร ความคิดใด ๆ

6
รหัส Entity Framework First - สอง Foreign Keys จากตารางเดียวกัน
ฉันเพิ่งเริ่มใช้รหัส EF ก่อนดังนั้นฉันจึงเป็นผู้เริ่มต้นทั้งหมดในหัวข้อนี้ ฉันต้องการสร้างความสัมพันธ์ระหว่างทีมและการแข่งขัน: 1 การแข่งขัน = 2 ทีม (บ้านผู้เยี่ยมชม) และผลการแข่งขัน ฉันคิดว่ามันง่ายที่จะสร้างแบบจำลองดังนั้นฉันจึงเริ่มเขียนโค้ด: public class Team { [Key] public int TeamId { get; set;} public string Name { get; set; } public virtual ICollection<Match> Matches { get; set; } } public class Match { [Key] public int MatchId { get; set; …

2
คำหลักเสมือนใดที่สามารถมีผลกระทบใน Entity Framework 4.1 POCO Code ก่อน
ไม่virtualคำหลักที่มีผลเมื่อใช้กับคุณสมบัติใน EF รหัสแรก ?. บางคนสามารถอธิบายการแยกย่อยของมันทั้งหมดในสถานการณ์ต่าง ๆ ตัวอย่างเช่นฉันรู้ว่ามันสามารถควบคุมการโหลดที่ขี้เกียจ - ถ้าคุณใช้คำหลักเสมือนในคุณสมบัติความสัมพันธ์แบบ ICollection / ความสัมพันธ์แบบหนึ่งต่อหลายมันจะถูกโหลดแบบสันหลังยาวโดยค่าเริ่มต้นในขณะที่ถ้าคุณปล่อยให้คำหลักเสมือนออก กระฉับกระเฉง virtualคำหลักอื่น ๆ ที่มีผลกับ EF ใน POCO คืออะไร? ฉันควรทำให้มันเป็นค่าเริ่มต้นที่จะใช้virtualกับคุณสมบัติทั้งหมดของฉันหรือเป็นค่าเริ่มต้นที่จะไม่ใช้มัน?

14
วิธีการส่งผ่านพารามิเตอร์ไปยังเมธอด DbContext.Database.ExecuteSqlCommand?
สมมติว่าฉันมีความต้องการที่ถูกต้องสำหรับการรันคำสั่ง sql ใน Entity Framework โดยตรง ฉันมีปัญหาในการหาวิธีใช้พารามิเตอร์ในคำสั่ง sql ของฉัน ตัวอย่างต่อไปนี้ (ไม่ใช่ตัวอย่างจริงของฉัน) ไม่ทำงาน var firstName = "John"; var id = 12; var sql = @"Update [User] SET FirstName = @FirstName WHERE Id = @Id"; ctx.Database.ExecuteSqlCommand(sql, firstName, id); กระบวนการ ExecuteSqlCommand วิธีการไม่อนุญาตให้คุณส่งผ่านพารามิเตอร์ที่มีชื่อเช่นใน ADO.Net และเอกสารประกอบสำหรับวิธีนี้ไม่ได้ให้ตัวอย่างใด ๆ เกี่ยวกับวิธีการเรียกใช้แบบสอบถามแบบใช้พารามิเตอร์ ฉันจะระบุพารามิเตอร์อย่างถูกต้องได้อย่างไร

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

8
StringLength vs MaxLength แอตทริบิวต์ ASP.NET MVC พร้อม Entity Framework รหัส EF ก่อน
พฤติกรรม[MaxLength]และ[StringLength]คุณลักษณะต่างกันอย่างไร เท่าที่ฉันสามารถบอกได้ (ยกเว้นว่า[MaxLength]สามารถตรวจสอบความยาวสูงสุดของอาร์เรย์) สิ่งเหล่านี้เหมือนกันและซ้ำซ้อนบ้างหรือไม่


3
แหล่งเก็บข้อมูลทั่วไปด้วย EF 4.1 ประเด็นคืออะไร
เมื่อฉันขุดลึกลงไปใน DbContext, DbSet และอินเทอร์เฟซที่เกี่ยวข้องฉันสงสัยว่าทำไมคุณต้องใช้พื้นที่เก็บข้อมูล "Generic" แยกต่างหากรอบ ๆ การใช้งานเหล่านี้? ดูเหมือนว่า DbContext และ IDbSet จะทำทุกสิ่งที่คุณต้องการและรวมถึง "หน่วยงาน" ใน DbContext ฉันขาดอะไรบางอย่างที่นี่หรือดูเหมือนว่าผู้คนจะเพลิดเพลินกับการเพิ่มการพึ่งพาอีกชั้นหนึ่งโดยไม่มีเหตุผล

4
วิธีรวมวัตถุลูกของวัตถุลูกใน Entity Framework 5
ฉันใช้และEntity Framework 5 code firstASP.NET MVC 3 ฉันกำลังดิ้นรนเพื่อให้วัตถุลูกของวัตถุเด็กเติม ด้านล่างเป็นชั้นเรียนของฉัน .. คลาสแอปพลิเคชัน public class Application { // Partial list of properties public virtual ICollection<Child> Children { get; set; } } ชั้นเรียนเด็ก: public class Child { // Partial list of properties public int ChildRelationshipTypeId { get; set; } public virtual ChildRelationshipType ChildRelationshipType …

2
Entity Framework เข้าร่วม 3 ตาราง
ฉันกำลังพยายามเข้าร่วมสามโต๊ะ แต่ฉันไม่เข้าใจวิธีการ ... ฉันเข้าร่วม 2 ตารางเสร็จแล้ว var entryPoint = dbContext.tbl_EntryPoint .Join(dbContext.tbl_Entry, c => c.EID, cm => cm.EID, (c, cm) => new { UID = cm.OwnerUID, TID = cm.TID, EID = c.EID, }). Where(a => a.UID == user.UID).Take(10); ฉันต้องการรวมตารางtbl_TitleกับTID PK และรับฟิลด์Title ขอบคุณมาก

4
รหัสเฟรมเวิร์กของเอนทิตี - คีย์นอกที่เป็นโมฆะแรก
ฉันมีUser< Countrymodel. ผู้ใช้เป็นของประเทศ แต่ไม่สามารถอยู่ใน (คีย์นอกที่เป็นค่าว่าง) ฉันจะตั้งค่านี้ได้อย่างไร? เมื่อฉันพยายามแทรกผู้ใช้ด้วยประเทศว่างมันบอกฉันว่ามันไม่สามารถเป็นโมฆะได้ โมเดลมีดังนี้: public class User{ public int CountryId { get; set; } public Country Country { get; set; } } public class Country{ public List<User> Users {get; set;} public int CountryId {get; set;} } ข้อผิดพลาด: A foreign key value cannot be inserted because a …

2
คีย์คอมโพสิตพร้อมรหัส EF 4.1 ก่อน
ฉันกำลังพยายามหาวิธีการมีคีย์ผสมโดยใช้รหัส EF First 4.1 RC ขณะนี้ฉันใช้คำอธิบายประกอบข้อมูล [คีย์] แต่ฉันไม่สามารถระบุได้มากกว่าหนึ่งคีย์ จะระบุคีย์ผสมได้อย่างไร นี่คือตัวอย่างของฉัน: public class ActivityType { [Key] public int ActivityID { get; set; } [Required(ErrorMessage = "A ActivityName is required")] [StringLength(50, ErrorMessage = "Activity Name must not exceed 50 characters")] public string ActivityName { get; set; } } ฉันต้องการ "ชื่อกิจกรรม" เพื่อเป็นกุญแจด้วย แน่นอนว่าฉันสามารถเขียนโค้ดได้ …

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