คำถามติดแท็ก ef-code-first

EF Code-First เป็นวิธีการใช้ Entity Framework ของ Microsoft กับคลาส POCO ซึ่งต่างจาก model-first หรือ DB-first

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
สร้างรหัสก่อนมากถึงมากด้วยฟิลด์เพิ่มเติมในตารางการเชื่อมโยง
ฉันมีสถานการณ์นี้: public class Member { public int MemberID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public virtual ICollection<Comment> Comments { get; set; } } public class Comment { public int CommentID { get; set; } public string Message { …

16
การแนะนำข้อ จำกัด KEY ต่างประเทศอาจทำให้เกิดรอบหรือเส้นทางเรียงซ้อนหลายเส้นทาง - ทำไม?
ฉันต่อสู้กับสิ่งนี้มาระยะหนึ่งแล้วไม่สามารถเข้าใจได้ว่าเกิดอะไรขึ้น ฉันมีเอนทิตีการ์ดที่มีด้าน (ปกติ 2) - และทั้งการ์ดและด้านข้างมีสเตจ ฉันใช้การโยกย้าย EF Codefirst และการโยกย้ายล้มเหลวด้วยข้อผิดพลาดนี้: การแนะนำข้อ จำกัด KEY ต่างประเทศ 'FK_dbo.Sides_dbo.Cards_CardId' บนตาราง 'ด้าน' อาจทำให้เกิดรอบหรือเส้นทางเรียงซ้อนหลายเส้นทาง ระบุ ON DELETE NO ACTION หรือ UPDATE NO ACTION หรือแก้ไขข้อ จำกัด ของกุญแจต่างประเทศ นี่คือกิจการบัตรของฉัน: public class Card { public Card() { Sides = new Collection<Side>(); Stage = Stage.ONE; } [Key] [Required] public virtual …

9
ข้อ จำกัด คีย์เฉพาะสำหรับหลายคอลัมน์ใน Entity Framework
Наэтотвопросестьответына Stack Overflow เรียงต่อกัน: เฟรมต่อวินาที ฉันใช้รหัสเอนทิตี Framework 5.0 ก่อน public class Entity { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public string EntityId { get; set;} public int FirstColumn { get; set;} public int SecondColumn { get; set;} } ฉันต้องการผสมผสานระหว่างFirstColumnและSecondColumnเป็นเอกลักษณ์ ตัวอย่าง: Id FirstColumn SecondColumn 1 1 1 = OK 2 2 1 = OK 3 …

16
ความแม่นยำและมาตราส่วนทศนิยมใน EF Code First
ฉันกำลังทดลองกับวิธีแรกของรหัสนี้ แต่ตอนนี้ฉันรู้แล้วว่าคุณสมบัติของ System.Decimal ได้รับการแมปกับคอลัมน์ sql ของทศนิยมประเภท (18, 0) ฉันจะตั้งค่าความแม่นยำของคอลัมน์ฐานข้อมูลได้อย่างไร

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

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


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
EF Code ก่อน“ ชื่อคอลัมน์ไม่ถูกต้อง 'Discriminator'” แต่ไม่มีการสืบทอด
ฉันมีตารางในฐานข้อมูลชื่อ SEntries (ดูด้านล่างคำสั่ง CREATE TABLE) มันมีคีย์หลักสองสามคีย์ต่างประเทศและไม่มีอะไรพิเศษเกี่ยวกับมัน ฉันมีตารางจำนวนมากในฐานข้อมูลของฉันคล้ายกับที่หนึ่ง แต่ด้วยเหตุผลบางอย่างตารางนี้จบลงด้วยคอลัมน์ "Discriminator" ใน EF Proxy Class นี่คือวิธีการประกาศคลาสใน C #: public class SEntry { public long SEntryId { get; set; } public long OriginatorId { get; set; } public DateTime DatePosted { get; set; } public string Message { get; set; } public byte …

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


21
นิติบุคคลประเภท <type> ไม่ได้เป็นส่วนหนึ่งของรูปแบบสำหรับบริบทปัจจุบัน
ฉันกำลังเข้าสู่ Entity Framework แต่ฉันไม่แน่ใจว่าฉันพลาดจุดสำคัญในวิธีการแบบรหัสแรกหรือไม่ ฉันใช้รูปแบบพื้นที่เก็บข้อมูลทั่วไปตามรหัสจากhttps://genericunitofworkandrepositories.codeplex.com/และได้สร้างเอนทิตีของฉันแล้ว แต่เมื่อฉันพยายามเข้าถึงหรือแก้ไขเอนทิตีฉันพบสิ่งต่อไปนี้: System.InvalidOperationException: ประเภทเอนทิตีไม่ได้เป็นส่วนหนึ่งของแบบจำลองสำหรับบริบทปัจจุบัน มันเกิดขึ้นเมื่อฉันพยายามเข้าถึงจากที่เก็บของฉัน: public virtual void Insert(TEntity entity) { ((IObjectState)entity).ObjectState = ObjectState.Added; _dbSet.Attach(entity); // &lt;-- The error occurs here _context.SyncObjectState(entity); } ฐานข้อมูล (./SQLEXPRESS) ถูกสร้างอย่างดี แต่เอนทิตี (ตาราง) ไม่ได้ถูกสร้างเมื่อเริ่มต้น ฉันสงสัยว่าฉันจำเป็นต้องตั้งค่าการแมปเอนทิตีหรือไม่ EF ไม่สามารถทำสิ่งนี้ได้ด้วยตนเอง เอนทิตีของฉันคือ: public class Estate : EntityBase { public int EstateId { get; set; } …

7
แก้ไขข้อผิดพลาดรหัสโยกย้าย Entity Framework รหัสแรก
ฉันใช้รหัส Entity Framework เป็นครั้งแรกในเว็บไซต์ของฉันและฉันแค่สงสัยว่าจะมีวิธีใดในการแก้ไขข้อบกพร่องของรหัสการโยกย้าย คุณก็รู้เช่นเดียวกับการตั้งจุดพักและสิ่งต่าง ๆ เช่นนี้ Update-Databaseฉันใช้คอนโซลการจัดการแพคเกจการปรับปรุงฐานข้อมูลโดยใช้ ขอบคุณ

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