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

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

4
การแมปคีย์คอมโพสิตโดยใช้รหัส EF ก่อน
ตารางเซิร์ฟเวอร์ SQL: SomeId PK varchar(50) not null OtherId PK int not null ฉันจะแมปสิ่งนี้ในโค้ด EF 6 ก่อนได้อย่างไร public class MyTable { [Key] public string SomeId { get; set; } [Key] public int OtherId { get; set; } } ฉันเคยเห็นตัวอย่างบางส่วนที่คุณต้องตั้งลำดับสำหรับแต่ละคอลัมน์จำเป็นหรือไม่ มีเอกสารอย่างเป็นทางการเกี่ยวกับเรื่องนี้หรือไม่?

2
Entity Framework - เพิ่มคุณสมบัติการนำทางด้วยตนเอง
ฉันสร้าง Entity Framework Model (4.0) จากฐานข้อมูลของฉัน ฉันไม่ได้ออกแบบฐานข้อมูลและไม่มีการควบคุมสคีมา แต่มีตารางไม่กี่ตารางที่ไม่มีการกำหนดข้อ จำกัด ของคีย์ต่างประเทศ แต่มีการกำหนดความสัมพันธ์โดยนัย ตัวอย่างเช่น: ฉันมีตารางชื่อ People ที่มีคอลัมน์ต่อไปนี้: GenderID RaceID มีตารางสำหรับทั้ง Gender และ Race แต่ไม่มี Foreign Key ในตาราง People เมื่อฉันนำเข้าโมเดลมันไม่ได้เพิ่มคุณสมบัติการนำทางสำหรับความสัมพันธ์เหล่านี้ ฉันพยายามเพิ่มด้วยตนเอง แต่ From Role and To Role ถูกปิดใช้งาน ฉันไม่แน่ใจว่าจะเพิ่มความสัมพันธ์ด้วยตัวเองอย่างไร ฉันต้องทำอย่างไร

25
มีชื่อวัตถุอยู่ในฐานข้อมูลแล้ว
Update-Database ล้มเหลวจาก Package Manager Console ฉันใช้ Entity Framework 6.x และวิธีการรหัสแรก ข้อผิดพลาดคือ "มีออบเจ็กต์ชื่อ" AboutUs "อยู่ในฐานข้อมูลแล้ว" ฉันจะแก้ปัญหานี้ได้อย่างไร? internal sealed class Configuration : DbMigrationsConfiguration<Jahan.Blog.Web.Mvc.Models.JahanBlogDbContext> { public Configuration() { AutomaticMigrationsEnabled = true; AutomaticMigrationDataLossAllowed = false; } protected override void Seed(Jahan.Blog.Web.Mvc.Models.JahanBlogDbContext context) { } } DbContext ของฉันคือ: public class JahanBlogDbContext : IdentityDbContext<User, Role, int, UserLogin, …

10
Entity Framework 4 เทียบกับ NHibernate [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ มีการพูดคุยกันมากมายเกี่ยวกับ Entity Framework เวอร์ชันแรกบนเว็บ (เช่นใน stackoverflow) และเป็นที่ชัดเจนว่ามันไม่ใช่ทางเลือกที่ดีเมื่อเรามีทางเลือกที่ดีกว่าเช่น NHibernate อยู่แล้ว แต่ฉันไม่พบการเปรียบเทียบที่ดีของ Entity Framework 4 และ NHibernate เราสามารถพูดได้ว่าวันนี้ NHibernate เป็นผู้นำในบรรดา. NET ORMs แต่เราสามารถคาดหวังให้ Entity Framework 4 แทนที่ NHibernate จากตำแหน่งนี้ได้หรือไม่ ฉันคิดว่าถ้า Microsoft ได้เพิ่มคุณสมบัติที่ดีมากใน EF4 มันสามารถทำให้เกิดการแข่งขันที่ดีกับ NHibernate เนื่องจากมีการรวม Visual Studio ใช้งานได้ง่ายขึ้นและความพึงพอใจจะมอบให้กับผลิตภัณฑ์ MS ในร้านค้าส่วนใหญ่

6
รหัส Entity Framework คอลัมน์แรกที่ไม่ซ้ำกัน
ฉันใช้ Entity Framework 4.3 และใช้ Code Fist ฉันมีชั้นเรียน public class User { public int UserId{get;set;} public string UserName{get;set;} } ฉันจะบอก Entity Framework ได้อย่างไรว่า UserName ต้องไม่ซ้ำกันเมื่อสร้างตารางฐานข้อมูล ฉันต้องการใช้คำอธิบายประกอบข้อมูลแทนไฟล์กำหนดค่าถ้าเป็นไปได้

8
วิธีที่ดีที่สุดในการตรวจสอบว่ามีวัตถุอยู่ใน Entity Framework หรือไม่?
วิธีใดที่ดีที่สุดในการตรวจสอบว่ามีวัตถุอยู่ในฐานข้อมูลจากมุมมองด้านประสิทธิภาพหรือไม่ ฉันใช้ Entity Framework 1.0 (ASP.NET 3.5 SP1)

26
คำว่า 'Update-Database' ไม่รู้จักเป็นชื่อของ cmdlet
ฉันใช้ EF5 beta1 และในขณะที่ฉันสามารถเรียกใช้ "Update-Database" มาก่อน ตอนนี้ฉันปิด Visual Studio แล้วฉันไม่สามารถเรียกใช้งานได้ ฉันได้รับข้อผิดพลาดต่อไปนี้: คำว่า 'Update-Database' ไม่รู้จักเป็นชื่อของ cmdlet ฟังก์ชันไฟล์สคริปต์หรือโปรแกรมที่ใช้งานได้ ตรวจสอบการสะกดชื่อหรือถ้ามีพา ธ ตรวจสอบว่าพา ธ ถูกต้องแล้วลองอีกครั้ง ที่บรรทัด: 1 char: 16 + Update-Database <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException ฉันได้ลองติดตั้ง EF5b1 อีกครั้งและในขณะที่ทำสำเร็จ (ติดตั้งแล้ว) 'Update-Database' ก็ยังไม่ทำงาน ใครช่วยได้บ้าง ???


5
Entity Framework Code First รองรับกระบวนงานที่จัดเก็บไว้หรือไม่
ฉันได้ดูการนำเสนอ EF Code First หลายครั้งแล้วและยังไม่เห็นว่า EFCF ทำงานร่วมกับขั้นตอนการจัดเก็บอย่างไร ฉันจะประกาศวิธีการที่จะใช้ sp บางตัวได้อย่างไร? ฉันสามารถส่งเอนทิตีไปยังเมธอดที่เรียกใช้ sp โดยไม่ต้องแมปคุณสมบัติเอนทิตีกับพารามิเตอร์ sp ด้วยตนเองได้หรือไม่ นอกจากนี้จะเกิดอะไรขึ้นถ้าฉันเปลี่ยนรุ่นของฉัน? มันจะลด sp ของฉันในขณะที่สร้างตารางจากโมเดลใหม่หรือไม่? แล้วทริกเกอร์ล่ะ? หากสิ่งเหล่านี้ไม่ได้รับการสนับสนุนมีแผนรองรับในอนาคตหรือไม่?

2
วิธีสร้างบริบทข้อมูล Entity Framework แบบอ่านอย่างเดียว
ฉันต้องการเปิดเผยบริบทข้อมูล Entity Framework กับปลั๊กอินของบุคคลที่สาม จุดประสงค์คือเพื่อให้ปลั๊กอินเหล่านี้ดึงข้อมูลเท่านั้นและไม่อนุญาตให้มีปัญหาในการแทรกอัปเดตหรือลบหรือคำสั่งแก้ไขฐานข้อมูลอื่น ๆ ดังนั้นฉันจะสร้างบริบทข้อมูลหรือเอนทิตีแบบอ่านอย่างเดียวได้อย่างไร

4
ASP.NET MVC: Controller ถูกสร้างขึ้นสำหรับทุกคำขอหรือไม่
คำถามง่ายมาก: ตัวควบคุมใน ASP.NET ถูกสร้างขึ้นสำหรับทุกคำขอ HTTP หรือไม่หรือสร้างขึ้นเมื่อเริ่มต้นแอปพลิเคชันและใช้ซ้ำตลอดคำขอ ตัวควบคุมจะถูกสร้างขึ้นสำหรับคำขอ HTTP เฉพาะหรือไม่ หากสมมติฐานก่อนหน้าของฉันถูกต้องฉันจะขึ้นอยู่กับมันได้หรือไม่? ฉันต้องการสร้างบริบทฐานข้อมูล (Entity Framework) ที่จะใช้งานได้สำหรับคำขอเดียวเท่านั้น ถ้าฉันสร้างเป็นคุณสมบัติที่เริ่มต้นในคอนสตรัคเตอร์ของคอนโทรลเลอร์จะมีการสร้างอินสแตนซ์ของบริบทใหม่สำหรับทุกคำขอหรือไม่

9
วิธีการลบออบเจ็กต์ด้วย id ด้วยเอนทิตีเฟรมเวิร์ก
สำหรับฉันแล้วดูเหมือนว่าฉันต้องดึงข้อมูลวัตถุก่อนที่จะลบด้วยกรอบเอนทิตีดังต่อไปนี้ var customer = context.Customers.First(c => c.Id == 1); context.DeleteObject(customer); context.Savechanges(); ดังนั้นฉันต้องตีฐานข้อมูลสองครั้ง มีวิธีที่ง่ายกว่านี้ไหม

14
ฉันจะสอบถามค่าว่างในกรอบงานเอนทิตีได้อย่างไร
ฉันต้องการดำเนินการค้นหาเช่นนี้ var result = from entry in table where entry.something == null select entry; และIS NULLสร้าง แก้ไข: หลังจากสองคำตอบแรกฉันรู้สึกว่าจำเป็นต้องชี้แจงว่าฉันใช้ Entity Framework ไม่ใช่ Linq กับ SQL เมธอด object.Equals () ดูเหมือนจะไม่ทำงานใน EF แก้ไขหมายเลข 2: ข้อความค้นหาข้างต้นทำงานได้ตามที่ตั้งใจไว้ IS NULLได้อย่างถูกต้องสร้าง อย่างไรก็ตามรหัสการผลิตของฉันคือ value = null; var result = from entry in table where entry.something == value select …

7
วิธีนับแถวภายใน EntityFramework โดยไม่ต้องโหลดเนื้อหา
ฉันกำลังพยายามหาวิธีนับแถวที่ตรงกันบนตารางโดยใช้ EntityFramework ปัญหาคือแต่ละแถวอาจมีข้อมูลหลายเมกะไบต์ (ในเขตข้อมูลไบนารี) แน่นอนว่า SQL จะเป็นแบบนี้: SELECT COUNT(*) FROM [MyTable] WHERE [fkID] = '1'; ฉันสามารถโหลดทุกแถวจากนั้นค้นหา Count ด้วย: var owner = context.MyContainer.Where(t => t.ID == '1'); owner.MyTable.Load(); var count = owner.MyTable.Count(); แต่นั่นก็ไร้ประสิทธิภาพอย่างสิ้นเชิง มีวิธีที่ง่ายกว่านี้ไหม แก้ไข: ขอบคุณทุกคน ฉันได้ย้ายฐานข้อมูลจากไฟล์แนบส่วนตัวดังนั้นฉันจึงสามารถเรียกใช้การสร้างโปรไฟล์ได้ สิ่งนี้ช่วยได้ แต่ทำให้เกิดความสับสนที่ฉันไม่คาดคิด และข้อมูลที่เป็นจริงของฉันเป็นบิตลึกผมจะใช้รถบรรทุกแบกพาเลทของกรณีของรายการ - และฉันไม่ต้องการให้รถบรรทุกที่จะออกจนกว่าจะมีอย่างน้อยหนึ่งรายการในนั้น ความพยายามของฉันแสดงไว้ด้านล่าง ส่วนที่ฉันไม่ได้รับคือ CASE_2 ไม่เคยเข้าถึงเซิร์ฟเวอร์ DB (MSSQL) var truck = …

4
Linq เป็น EntityFramework DateTime
Наэтотвопросестьответына Stack Overflow нарусском : LINQ to Entities ไม่รู้จักเมธอด 'System.DateTime AddDays (Double)' ในแอปพลิเคชันของฉันฉันกำลังใช้ Entity Framework โต๊ะของฉัน -Article -period -startDate ฉันต้องการบันทึกที่ตรงกับ => DateTime.Now > startDate and (startDate + period) > DateTime.Now ฉันลองใช้รหัสนี้ แต่ใช้งานได้แล้ว Context.Article .Where(p => p.StartDate < DateTime.Now) .Where(p => p.StartDate.AddDays(p.Period) > DateTime.Now) เมื่อฉันเรียกใช้รหัสของฉันข้อยกเว้นต่อไปนี้เกิดขึ้น LINQ เป็นเอนทิตีไม่รู้จักเมธอด 'System.DateTime AddDays (Double)' และวิธีนี้ไม่สามารถแปลเป็นนิพจน์ร้านค้าได้

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