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

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

19
ASP.NET MVC - การแนบเอนทิตีประเภท 'MODELNAME' ล้มเหลวเนื่องจากเอนทิตีอื่นประเภทเดียวกันมีค่าคีย์หลักเดียวกันอยู่แล้ว
สรุปได้ว่ามีข้อยกเว้นเกิดขึ้นระหว่างการโพสต์โมเดล wrapper และเปลี่ยนสถานะของรายการหนึ่งเป็น 'Modified' ก่อนที่จะเปลี่ยนสถานะสถานะจะถูกตั้งค่าเป็น 'แยกออก' แต่การเรียก Attach () จะทำให้เกิดข้อผิดพลาดเดียวกัน ฉันใช้ EF6 โปรดค้นหารหัสของฉันด้านล่าง (ชื่อรุ่นถูกเปลี่ยนเพื่อให้อ่านง่ายขึ้น) แบบ // Wrapper classes public class AViewModel { public A a { get; set; } public List<B> b { get; set; } public C c { get; set; } } ตัวควบคุม public ActionResult Edit(int? id) { …

7
ฉันจะเปิดใช้งานการโอนย้าย EF สำหรับหลายบริบทเพื่อแยกฐานข้อมูลได้อย่างไร
ฉันจะเปิดใช้งานการโอนย้าย Entity Framework 5 (เวอร์ชัน 5.0.0) สำหรับบริบท DB หลายรายการในโครงการเดียวกันได้อย่างไรโดยที่แต่ละบริบทสอดคล้องกับฐานข้อมูลของตนเอง เมื่อฉันรันEnable-Migrationsในคอนโซล PM (Visual Studio 2012) มีข้อผิดพลาดเนื่องจากมีหลายบริบท: PM> Enable-Migrations More than one context type was found in the assembly 'DatabaseService'. To enable migrations for DatabaseService.Models.Product1DbContext, use Enable-Migrations -ContextTypeName DatabaseService.Models.Product1DbContext. To enable migrations for DatabaseService.Models.Product2DbContext, use Enable-Migrations -ContextTypeName DatabaseService.Models.Product2DbContext. หากฉันเรียกใช้Enable-Migrations -ContextTypeName DatabaseService.Models.Product1DbContextฉันไม่ได้รับอนุญาตให้เรียกใช้Enable-Migrations -ContextTypeName …


3
อาร์กิวเมนต์ DbArithmeticExpression ต้องมีประเภทตัวเลขร่วมกัน
TimeSpan time24 = new TimeSpan(24, 0, 0); TimeSpan time18 = new TimeSpan(18, 0, 0); // first get today's sleeping hours List<Model.Sleep> sleeps = context.Sleeps.Where( o => (clientDateTime - o.ClientDateTimeStamp < time24) && o.ClientDateTimeStamp.TimeOfDay > time18 && clientDateTime.TimeOfDay < time18 && o.UserID == userid).ToList(); นิพจน์ Linq นี้แสดงข้อยกเว้นนี้: DbArithmeticExpression arguments must have …

1
Entity Framework Code First - ข้อดีและข้อเสียของ Fluent Api เทียบกับ Data Annotations [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เมื่อสร้างฐานข้อมูลโดยใช้รหัส Entity Framework เป็นอันดับแรกโมเดลฐานข้อมูลจำนวนมากจะถูกดึงออกมาจากโค้ด สามารถใช้ Fluent API และ / หรือแอตทริบิวต์เพื่อปรับแต่งโมเดลได้อย่างละเอียด ข้อดีและข้อเสียของ Fluent Api เมื่อเปรียบเทียบกับ Data Annotations คืออะไร? กล่าวอีกนัยหนึ่ง: แม้ว่าในบางสถานการณ์สามารถใช้ทั้งสองวิธีได้ แต่ในกรณีใดวิธีหนึ่งควรมีชัยเหนืออีกวิธีหนึ่ง?

6
Entity Framework 4 Single () เทียบกับ First () เทียบกับ FirstOrDefault ()
ฉันมีปีศาจในการค้นหาการเปรียบเทียบวิธีต่างๆในการค้นหารายการเดียวและเวลาที่ควรใช้แต่ละรายการ ใครมีลิงค์ที่เปรียบเทียบสิ่งเหล่านี้ทั้งหมดหรือคำอธิบายสั้น ๆ ว่าทำไมคุณถึงใช้อันอื่น? ยังมีตัวดำเนินการอีกหรือไม่ที่ฉันไม่รู้จัก? ขอบคุณ.

8
ใช้ SQL Server 2008 และ SQL Server 2005 และวันเวลา
ฉันได้สร้างแบบจำลองกรอบเอนทิตีเทียบกับฐานข้อมูลปี 2008 ทั้งหมดใช้ได้กับฐานข้อมูลปี 2008 เมื่อฉันพยายามอัปเดตเอนทิตีบนฐานข้อมูลปี 2005 ฉันได้รับข้อผิดพลาดนี้ เวอร์ชันของ SQL Server ที่ใช้งานไม่รองรับประเภทข้อมูล 'datetime2 ฉันไม่ได้ใช้คุณลักษณะใด ๆ ในปี 2008 โดยเฉพาะเมื่อฉันสร้างฐานข้อมูล ฉันไม่พบการอ้างอิงถึง datetime2 ในโค้ด และใช่คอลัมน์นี้ถูกกำหนดให้เป็น "วันที่และเวลา" ในฐานข้อมูล

5
วิธีการ "อุ่นเครื่อง" Entity Framework “ หนาว” เมื่อไหร่
ไม่คำตอบสำหรับคำถามที่สองของฉันไม่ใช่ฤดูหนาว คำนำ: เมื่อเร็ว ๆ นี้ฉันได้ทำการวิจัยเกี่ยวกับ Entity Framework มากมายและสิ่งที่ทำให้ฉันรำคาญคือประสิทธิภาพของมันเมื่อแบบสอบถามไม่ได้อุ่นเครื่องเรียกว่าแบบสอบถามเย็น ฉันอ่านบทความข้อควรพิจารณาเกี่ยวกับประสิทธิภาพของ Entity Framework 5.0 ผู้เขียนแนะนำแนวคิดของแบบสอบถามที่อบอุ่นและเย็นและความแตกต่างกันอย่างไรซึ่งฉันก็สังเกตเห็นตัวเองโดยไม่รู้ว่ามีอยู่จริง ที่นี่อาจจะคุ้มค่าที่จะพูดถึงฉันมีประสบการณ์อยู่เบื้องหลังเพียงหกเดือนเท่านั้น ตอนนี้ฉันรู้แล้วว่าฉันสามารถค้นคว้าในหัวข้อใดได้บ้างหากฉันต้องการทำความเข้าใจกรอบงานให้ดีขึ้นในแง่ของประสิทธิภาพ น่าเสียดายที่ข้อมูลส่วนใหญ่บนอินเทอร์เน็ตล้าสมัยหรือเต็มไปด้วยความเป็นส่วนตัวด้วยเหตุนี้ฉันจึงไม่สามารถค้นหาข้อมูลเพิ่มเติมใด ๆ เกี่ยวกับหัวข้อแบบสอบถามWarm vs Cold โดยพื้นฐานแล้วสิ่งที่ฉันสังเกตเห็นคือเมื่อใดก็ตามที่ฉันต้องทำการคอมไพล์ใหม่หรือการรีไซเคิลการค้นหาครั้งแรกของฉันจะช้ามาก การอ่านข้อมูลใด ๆ ที่ตามมานั้นรวดเร็ว ( อัตนัย ) ตามที่คาดไว้ เราจะย้ายไปใช้ Windows Server 2012, IIS8 และ SQL Server 2012 และในฐานะ Junior ฉันได้รับโอกาสในการทดสอบก่อนที่จะเหลือ ฉันดีใจมากที่พวกเขาแนะนำโมดูลการอุ่นเครื่องซึ่งจะทำให้แอปพลิเคชันของฉันพร้อมสำหรับคำขอแรกนั้น อย่างไรก็ตามฉันไม่แน่ใจว่าจะดำเนินการอย่างไรกับการอุ่นเครื่อง Entity Framework ของฉัน สิ่งที่ฉันรู้แล้วว่าควรค่าแก่การทำ: สร้างมุมมองของฉันล่วงหน้าตามที่แนะนำ ในที่สุดก็ย้ายโมเดลของฉันไปไว้ในชุดประกอบแยกต่างหาก สิ่งที่ฉันคิดจะทำโดยใช้สามัญสำนึกอาจเป็นแนวทางที่ผิด : …

7
Entity Framework Migrations เปลี่ยนชื่อตารางและคอลัมน์
ฉันเปลี่ยนชื่อเอนทิตีสองรายการและคุณสมบัติการนำทางของพวกเขาและสร้างการย้ายใหม่ใน EF 5 ตามปกติกับการเปลี่ยนชื่อในการย้ายข้อมูล EF โดยค่าเริ่มต้นมันจะทิ้งวัตถุและสร้างขึ้นใหม่ นั่นไม่ใช่สิ่งที่ฉันต้องการดังนั้นฉันจึงต้องสร้างไฟล์โยกย้ายตั้งแต่เริ่มต้น public override void Up() { DropForeignKey("dbo.ReportSectionGroups", "Report_Id", "dbo.Reports"); DropForeignKey("dbo.ReportSections", "Group_Id", "dbo.ReportSectionGroups"); DropForeignKey("dbo.Editables", "Section_Id", "dbo.ReportSections"); DropIndex("dbo.ReportSectionGroups", new[] { "Report_Id" }); DropIndex("dbo.ReportSections", new[] { "Group_Id" }); DropIndex("dbo.Editables", new[] { "Section_Id" }); RenameTable("dbo.ReportSections", "dbo.ReportPages"); RenameTable("dbo.ReportSectionGroups", "dbo.ReportSections"); RenameColumn("dbo.ReportPages", "Group_Id", "Section_Id"); AddForeignKey("dbo.ReportSections", "Report_Id", "dbo.Reports", "Id"); AddForeignKey("dbo.ReportPages", "Section_Id", "dbo.ReportSections", …


14
จะเปรียบเทียบเฉพาะวันที่จาก DateTime ใน EF ได้อย่างไร?
ฉันมีค่าวันที่สองค่าค่าหนึ่งเก็บไว้ในฐานข้อมูลแล้วและค่าอื่นที่ผู้ใช้เลือกโดยใช้ DatePicker กรณีการใช้งานคือการค้นหาวันที่ที่ต้องการจากฐานข้อมูล ค่าที่ป้อนก่อนหน้านี้ในฐานข้อมูลมักจะมีองค์ประกอบของเวลาคือ 12:00:00 น. โดยที่วันที่ที่ป้อนจากตัวเลือกจะมีส่วนประกอบของเวลาที่แตกต่างกัน ฉันสนใจเฉพาะส่วนประกอบวันที่และต้องการละเว้นองค์ประกอบเวลา การเปรียบเทียบนี้ใน C # มีวิธีใดบ้าง นอกจากนี้วิธีการทำใน LINQ อัปเดต: ใน LINQ ถึงเอนทิตีสิ่งต่อไปนี้ใช้งานได้ดี e => DateTime.Compare(e.FirstDate.Value, SecondDate) >= 0

4
LINQ to Entities ไม่รู้จักเมธอด
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามทำแบบสอบถาม linq: LINQ เป็นเอนทิตีไม่รู้จักเมธอด 'Boolean IsCharityMatching (System.String, System.String)' และวิธีนี้ไม่สามารถแปลเป็นนิพจน์ที่เก็บ ฉันได้อ่านคำถามก่อนหน้านี้มากมายที่ผู้คนได้รับข้อผิดพลาดเดียวกันและถ้าฉันเข้าใจสิ่งนี้อย่างถูกต้องนั่นเป็นเพราะ LINQ to Entities ต้องการนิพจน์การค้นหา linq ทั้งหมดเพื่อแปลเป็นแบบสอบถามเซิร์ฟเวอร์ดังนั้นคุณจึงไม่สามารถเรียกวิธีการภายนอกได้ ในนั้น. ฉันยังไม่สามารถแปลงสถานการณ์ของฉันให้เป็นสิ่งที่ใช้งานได้และสมองของฉันก็เริ่มละลายลงดังนั้นฉันจึงหวังว่าจะมีใครบางคนชี้ฉันไปในทิศทางที่ถูกต้อง เรากำลังใช้ Entity Framework และรูปแบบข้อกำหนด (และฉันยังใหม่สำหรับทั้งสองอย่าง) นี่คือรหัสที่ใช้ข้อกำหนด: ISpecification<Charity> specification = new CharitySearchSpecification(charityTitle, charityReference); charities = charitiesRepository.Find(specification).OrderBy(p => p.RegisteredName).ToList(); นี่คือนิพจน์ linq: public System.Linq.Expressions.Expression<Func<Charity, bool>> IsSatisfied() { return p => p.IsCharityMatching(this.charityName, this.charityReference); } นี่คือวิธี IsCharityMatching: …

12
เลิกทำการเปลี่ยนแปลงในเอนทิตีกรอบงานเอนทิตี
นี่อาจเป็นคำถามเล็กน้อย แต่: เนื่องจากเฟรมเวิร์กเอนทิตี ADO.NET ติดตามการเปลี่ยนแปลงโดยอัตโนมัติ (ในเอนทิตีที่สร้างขึ้น) ดังนั้นจึงเก็บค่าดั้งเดิมไว้ฉันจะย้อนกลับการเปลี่ยนแปลงที่ทำกับเอนทิตีอ็อบเจ็กต์ได้อย่างไร ฉันมีแบบฟอร์มที่อนุญาตให้ผู้ใช้แก้ไขชุดของเอนทิตี "ลูกค้า" ในมุมมองกริด ตอนนี้ฉันมีสองปุ่ม "ยอมรับ" และ "เปลี่ยนกลับ": ถ้าคลิก "ยอมรับ" ฉันจะเรียกContext.SaveChanges()และวัตถุที่เปลี่ยนแปลงจะถูกเขียนกลับไปที่ฐานข้อมูล หากคลิก "เปลี่ยนกลับ" ฉันต้องการให้วัตถุทั้งหมดได้รับค่าคุณสมบัติดั้งเดิม รหัสสำหรับสิ่งนั้นคืออะไร? ขอบคุณ

5
ฉันจะแก้ไขสตริงการเชื่อมต่อ Entity Framework ได้อย่างไร
ฉันเพิ่งแก้ไขไฟล์ app.config ของฉันเพื่อเปลี่ยนสตริงการเชื่อมต่อสำหรับโมเดลข้อมูล Entity Framework ( .edmxไฟล์) แต่ฉันอยากรู้: มีวิธีแก้ไขสตริงการเชื่อมต่อ EF โดยใช้ตัวออกแบบหรือไม่? สตริงการเชื่อมต่อดั้งเดิมสร้างขึ้นโดยอัตโนมัติโดยตัวช่วยสร้างโมเดลข้อมูลเอนทิตี จากนั้นไม่สามารถเปลี่ยนแปลงสตริงการเชื่อมต่อได้ - ยังคงปิดใช้งานในหน้าต่างคุณสมบัติของตัวออกแบบ. edmx ฉันต้องการหลีกเลี่ยงการแก้ไข XML ด้วยมือหากทำได้ (ใน app.config) ดังนั้นฉันจึงสงสัยว่ามีวิธีกลับไปที่หน้าจอวิซาร์ดดั้งเดิมเพื่อทำการเปลี่ยนแปลงสตริงการเชื่อมต่อหรือไม่และให้เครื่องมือแก้ไขไฟล์ app.config สำหรับฉัน.

3
DbSet.Attach (เอนทิตี) กับ DbContext.Entry (เอนทิตี) .State = EntityState.Modified
เมื่อฉันอยู่ในสถานการณ์ที่แยกออกมาและได้รับ dto จากไคลเอนต์ที่ฉันแมปเป็นเอนทิตีเพื่อบันทึกฉันทำสิ่งนี้: context.Entry(entity).State = EntityState.Modified; context.SaveChanges(); สำหรับอะไรแล้ว DbSet.Attach(entity) หรือเหตุใดฉันจึงควรใช้เมธอด. Attach เมื่อ EntityState.Modified แนบเอนทิตีแล้ว?

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