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

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

2
การดำเนินการ async Framework Entity ใช้เวลาสิบเท่าในการดำเนินการให้เสร็จสมบูรณ์
ฉันมีไซต์ MVC ที่ใช้ Entity Framework 6 เพื่อจัดการฐานข้อมูลและฉันได้ทำการทดลองกับการเปลี่ยนแปลงเพื่อให้ทุกอย่างทำงานเป็นตัวควบคุม async และการเรียกไปยังฐานข้อมูลนั้นจะทำงานเหมือน async counterparts (เช่น ToListAsync () แทน ToList ()) ปัญหาที่ฉันมีคือเพียงแค่เปลี่ยนการสืบค้นของฉันเป็น async ทำให้พวกเขาช้าอย่างไม่น่าเชื่อ รหัสต่อไปนี้จะได้รับการรวบรวมวัตถุ "Album" จากบริบทข้อมูลของฉันและถูกแปลเป็นฐานข้อมูลที่ค่อนข้างง่าย: // Get the albums var albums = await this.context.Albums .Where(x => x.Artist.ID == artist.ID) .ToListAsync(); นี่คือ SQL ที่สร้างขึ้น: exec sp_executesql N'SELECT [Extent1].[ID] AS [ID], [Extent1].[URL] AS [URL], …


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

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 …

14
วิธีแก้ไขข้อผิดพลาดการแปลง datetime2 นอกช่วงโดยใช้ DbContext และ SetInitializer
ฉันใช้ DbContext และ Code First API ที่แนะนำกับ Entity Framework 4.1 ข้อมูลแบบใช้ชนิดข้อมูลพื้นฐานเช่นและstring DateTimeคำอธิบายประกอบข้อมูลเดียวที่ฉันใช้ในบางกรณีคือ[Required]แต่ไม่ได้อยู่ในDateTimeคุณสมบัติใด ๆ ตัวอย่าง: public virtual DateTime Start { get; set; } subclass DbContextยังเป็นที่เรียบง่ายและดูเหมือนว่า: public class EventsContext : DbContext { public DbSet<Event> Events { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Event>().ToTable("Events"); } } ตัวเริ่มต้นกำหนดวันที่ในแบบจำลองเป็นค่าที่เหมาะสมในปีนี้หรือปีหน้า อย่างไรก็ตามเมื่อฉันเรียกใช้ initializer ฉันได้รับข้อผิดพลาดนี้ที่context.SaveChanges(): …

6
ฉันจะรับเอนทิตีที่แสดงถึงผู้ใช้ปัจจุบันใน Symfony2 ได้อย่างไร
ฉันใช้การตั้งค่าความปลอดภัยของ Symfony ทุกอย่างทำงานได้ดี แต่ฉันไม่รู้ว่าจะทำสิ่งสำคัญอย่างหนึ่งอย่างไร ใน twig ฉันสามารถเข้าถึงข้อมูลของผู้ใช้ปัจจุบันได้โดยทำ: Welcome, {{ app.user.username }} หรือคล้ายกัน ฉันจะเข้าถึงข้อมูลเดียวกันนี้ใน Controller ได้อย่างไร โดยเฉพาะอย่างยิ่งฉันต้องการรับเอนทิตีผู้ใช้ปัจจุบันดังนั้นฉันจึงสามารถจัดเก็บอย่างสัมพันธ์กันในเอนทิตีอื่น (การแมปแบบหนึ่งต่อหนึ่ง) ฉันหวังว่ามันจะเป็นอย่างนั้นจริงๆ $this->get('security.context')->getToken()->getUser() แต่ไม่ได้ผล มันทำให้ฉันมีคลาสประเภทหนึ่ง Symfony\Component\Security\Core\User\User และฉันต้องการหนึ่งประเภท Acme\AuctionBundle\Entity\User ซึ่งเป็นหน่วยงานของฉัน ....

9
Entity Framework และ SQL Server View
ด้วยเหตุผลหลายประการที่ฉันไม่มีเสรีภาพที่จะพูดถึงเรากำลังกำหนดมุมมองบนฐานข้อมูล Sql Server 2005 ของเราดังนี้: CREATE VIEW [dbo].[MeterProvingStatisticsPoint] AS SELECT CAST(0 AS BIGINT) AS 'RowNumber', CAST(0 AS BIGINT) AS 'ProverTicketId', CAST(0 AS INT) AS 'ReportNumber', GETDATE() AS 'CompletedDateTime', CAST(1.1 AS float) AS 'MeterFactor', CAST(1.1 AS float) AS 'Density', CAST(1.1 AS float) AS 'FlowRate', CAST(1.1 AS float) AS 'Average', CAST(1.1 AS …

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 ขอบคุณมาก

9
ตรวจสอบเวอร์ชันของ Entity Framework ที่ฉันใช้อยู่?
ฉันเชื่อว่ามีสองเวอร์ชัน 1 และ 2? และเวอร์ชัน 2 จะเรียกว่า Entity Framework 4.0? ฉันจะทราบได้อย่างไรว่ากำลังใช้เวอร์ชันใดในแอปพลิเคชัน นี่อยู่ใน web.config ของฉันหมายความว่าฉันกำลังใช้เวอร์ชัน 2 อยู่หรือเปล่า <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

18
ค่าไม่สามารถเป็นค่าว่างได้ ชื่อพารามิเตอร์: แหล่งที่มา
นี่อาจเป็นปัญหาเสียเวลาที่ใหญ่ที่สุดที่ฉันใช้เวลาหลายชั่วโมงในการแก้ปัญหาเป็นเวลานาน var db = new hublisherEntities(); establishment_brands est = new establishment_brands(); est.brand_id = 1; est.establishment_id = 1; est.price = collection["price"]; est.size = collection["size"]; db.establishment_brands.Add(est); db.SaveChanges(); สิ่งนี้ทำให้ฉันมีข้อผิดพลาด ค่าไม่สามารถเป็นค่าว่างได้ ชื่อพารามิเตอร์: แหล่งที่มา stacktrace ของ [ArgumentNullException: ค่าไม่สามารถเป็นค่าว่างได้ ชื่อพารามิเตอร์: source] System.Linq.Enumerable.Any (IEnumerable 1 source, Func2 เพรดิเคต) +4083335 System.Data.Entity.Internal.InternalContext.WrapUpdateException (UpdateException updateException) +87 System.Data.Entity.Internal.InternalContext.SaveChanges () + 193 …

6
รหัส EF ก่อน: ฉันจะดูคุณสมบัติ 'EntityValidationErrors' ได้จากคอนโซลแพคเกจ nuget ได้อย่างไร
ฉันกำลังแพ้เรื่องนี้: ฉันได้กำหนดคลาสของฉันสำหรับรหัสเอนทิตี Framework (4.1.3) วิธีแรก ทุกอย่างเรียบร้อย (ฉันสร้างตาราง ฯลฯ ) จนกระทั่งฉันเริ่ม Seed ตอนนี้เมื่อฉันทำ Add-Migration "remigrate" ; Update-Database; ฉันได้รับข้อผิดพลาดบนคอนโซลของแพคเกจ "การตรวจสอบล้มเหลวสำหรับเอนทิตี้อย่างน้อยหนึ่งรายการดูคุณสมบัติ 'EntityValidationErrors' สำหรับรายละเอียดเพิ่มเติม" ฉันมีจุดพักในวิธีการของฉัน Seed () แต่เนื่องจากฉันใช้สิ่งนี้บนคอนโซลเมื่อโปรเจ็กต์ไม่ทำงานฉัน clueless เป็นวิธีการรับรายละเอียด (PS - ฉันได้เห็นการตรวจสอบเธรดล้มเหลว สำหรับเอนทิตีหนึ่งแห่งหรือมากกว่าในขณะที่บันทึกการเปลี่ยนแปลงของฐานข้อมูลเซิร์ฟเวอร์ SQL โดยใช้ Entity Frameworkซึ่งแสดงวิธีที่ฉันสามารถดูคุณสมบัติได้) ฉันรู้ว่าวิธี Seed () ของฉันมีปัญหาเพราะถ้าฉันใส่คืนทันทีหลังจากการเรียกเมธอดข้อผิดพลาดจะหายไป ดังนั้นฉันจะตั้งค่าเบรกพอยต์ของฉันได้อย่างไรเพื่อดูว่าข้อผิดพลาดในการตรวจสอบคืออะไร คินหายไป หรือมีวิธีอื่นในการติดตามในคอนโซล nuget หรือไม่?

19
ข้อ จำกัด เฉพาะในรหัสกรอบงานเอนทิตีก่อน
คำถาม เป็นไปได้ไหมที่จะกำหนดข้อ จำกัด เฉพาะในคุณสมบัติโดยใช้ไวยากรณ์ที่คล่องแคล่วหรือแอตทริบิวต์ ถ้าไม่วิธีแก้ปัญหาคืออะไร? ฉันมีคลาสผู้ใช้ที่มีคีย์หลัก แต่ฉันต้องการให้แน่ใจว่าที่อยู่อีเมลนั้นไม่ซ้ำกัน สามารถทำได้โดยไม่ต้องแก้ไขฐานข้อมูลโดยตรงหรือไม่? วิธีแก้ปัญหา (ตามคำตอบของ Matt) public class MyContext : DbContext { public DbSet<User> Users { get; set; } public override int SaveChanges() { foreach (var item in ChangeTracker.Entries<IModel>()) item.Entity.Modified = DateTime.Now; return base.SaveChanges(); } public class Initializer : IDatabaseInitializer<MyContext> { public void InitializeDatabase(MyContext context) …

7
การแก้ปัญหา“ อินสแตนซ์ ObjectContext ถูกกำจัดและไม่สามารถใช้สำหรับการดำเนินการที่ต้องใช้การเชื่อมต่อได้อีกต่อไป” InvalidOperationException
ฉันพยายามเติมข้อมูลGridViewโดยใช้ Entity Frameworkm แต่ทุกครั้งฉันได้รับข้อผิดพลาดต่อไปนี้: "ผู้เข้าถึงคุณสมบัติ" LoanProduct "บนออบเจ็กต์" COSIS_DAL.MemberLoan "มีข้อยกเว้นต่อไปนี้: อินสแตนซ์ ObjectContext ถูกกำจัดและไม่สามารถใช้สำหรับการดำเนินการที่ต้องใช้การเชื่อมต่อได้อีกต่อไป" รหัสของฉันคือ: public List<MemberLoan> GetAllMembersForLoan(string keyword) { using (CosisEntities db = new CosisEntities()) { IQueryable<MemberLoan> query = db.MemberLoans.OrderByDescending(m => m.LoanDate); if (!string.IsNullOrEmpty(keyword)) { keyword = keyword.ToLower(); query = query.Where(m => m.LoanProviderCode.Contains(keyword) || m.MemNo.Contains(keyword) || (!string.IsNullOrEmpty(m.LoanProduct.LoanProductName) && m.LoanProduct.LoanProductName.ToLower().Contains(keyword)) || m.Membership.MemName.Contains(keyword) …

6
มี DefiningQuery แต่ไม่มีองค์ประกอบ InsertFunction … err
สิ่งนี้ทำให้ฉันแทบคลั่งและข้อผิดพลาดก็ไม่มีความหมายสำหรับฉัน: ไม่สามารถอัปเดต EntitySet 'TableB' ได้เนื่องจากมี DefiningQuery และไม่มีองค์ประกอบอยู่ในองค์ประกอบเพื่อรองรับการดำเนินการปัจจุบัน ตารางของฉันวางไว้ดังนี้: TableA int idA (เอกลักษณ์คีย์หลัก) ... TableB int idA (FK สำหรับ TableA.idA) int val TableB ไม่มีคีย์หลักที่กำหนดไว้ในเซิร์ฟเวอร์ SQL Entity Framework ได้นำเข้าตารางและการเชื่อมโยงและตั้งค่าฟิลด์ทั้งสองเป็นคีย์ แต่มันจะแสดงข้อผิดพลาดนั้นเมื่อฉันพยายามแทรกลงในตาราง! เป็นอะไร ?? แก้ไข: ตามที่ Alex แนะนำวิธีแก้ปัญหาคือ: คลิกขวาที่ไฟล์ edmx เลือก Open with, XML editor ค้นหาเอนทิตีในองค์ประกอบ edmx: StorageModels ลบ DefiningQuery ทั้งหมด เปลี่ยนชื่อร้านค้า: Schema = …

26
คอนโซลตัวจัดการแพ็คเกจเปิดใช้งาน -Migrations CommandNotFoundException ในโครงการ VS ที่ระบุเท่านั้น
ฉันพยายามเรียกใช้คำสั่ง 'Enable-Migrations' ในโปรเจ็กต์ใหม่และฉันได้รับข้อความ: PM> Enable-Migrations The term 'Enable-Migrations' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verif y that the path is correct and try again. At line:1 char:18 + Enable-Migrations …

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