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

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

3
เอนทิตีเฟรมเวิร์ก SaveChanges () เทียบกับ SaveChangesAsync () และ Find () เทียบกับ FindAsync ()
ฉันได้ค้นหาความแตกต่างระหว่าง 2 คู่ข้างต้น แต่ไม่พบบทความใด ๆ ที่อธิบายอย่างชัดเจนเกี่ยวกับเรื่องนี้รวมถึงเวลาที่ควรใช้อย่างใดอย่างหนึ่ง แล้วอะไรคือความแตกต่างระหว่างSaveChanges()และSaveChangesAsync()? และระหว่างFind()และFindAsync()? ในฝั่งเซิร์ฟเวอร์เมื่อเราใช้Asyncวิธีการเราต้องเพิ่มawaitไฟล์. ดังนั้นฉันไม่คิดว่ามันเป็นแบบอะซิงโครนัสที่ฝั่งเซิร์ฟเวอร์ ช่วยป้องกัน UI ที่ปิดกั้นบนเบราว์เซอร์ฝั่งไคลเอ็นต์เท่านั้นหรือไม่? หรือมีข้อดีข้อเสียระหว่างกันหรือไม่?

7
Entity Framework: จะปิดใช้งานการโหลดแบบขี้เกียจสำหรับแบบสอบถามเฉพาะได้อย่างไร
มีวิธีใดบ้างในการปิดใช้งานการโหลดแบบขี้เกียจสำหรับแบบสอบถามเฉพาะใน Entity Framework 6 ฉันต้องการใช้เป็นประจำ แต่บางครั้งฉันต้องการปิดการใช้งาน ฉันใช้คุณสมบัติเสมือนเพื่อขี้เกียจโหลด

3
LINQ ไปยังเอนทิตีไม่รู้จักเมธอด 'System.String Format (System.String, System.Object, System.Object)'
ฉันมีแบบสอบถาม linq นี้: private void GetReceivedInvoiceTasks(User user, List<Task> tasks) { var areaIds = user.Areas.Select(x => x.AreaId).ToArray(); var taskList = from i in _db.Invoices join a in _db.Areas on i.AreaId equals a.AreaId where i.Status == InvoiceStatuses.Received && areaIds.Contains(a.AreaId) select new Task { LinkText = string.Format(Invoice {0} has been received from {1}, …

5
เป็นไปได้ที่จะตรวจสอบว่าอ็อบเจ็กต์ถูกแนบกับบริบทข้อมูลใน Entity Framework แล้วหรือไม่
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามแนบวัตถุที่แนบกับบริบทที่กำหนดผ่านcontext.AttachTo(...): มีวัตถุที่มีคีย์เดียวกันอยู่แล้วใน ObjectStateManager ObjectStateManager ไม่สามารถติดตามวัตถุหลายชิ้นด้วยคีย์เดียวกัน มีวิธีในการบรรลุบางสิ่งตามแนวของ: context.IsAttachedTo(...) ไชโย! แก้ไข: วิธีการขยายที่ Jason สรุปไว้นั้นใกล้เคียง แต่ใช้ไม่ได้กับสถานการณ์ของฉัน ฉันกำลังพยายามทำงานบางอย่างโดยใช้วิธีการที่ระบุไว้ในคำตอบสำหรับคำถามอื่น: ฉันจะลบแถวอย่างน้อยหนึ่งแถวออกจากตารางของฉันโดยใช้ Linq ไปยัง Entities * โดยไม่ * ดึงข้อมูลแถวก่อนได้อย่างไร รหัสของฉันมีลักษณะดังนี้: var user = new User() { Id = 1 }; context.AttachTo("Users", user); comment.User = user; context.SaveChanges(); วิธีนี้ใช้ได้ดียกเว้นเมื่อฉันทำอย่างอื่นให้กับผู้ใช้รายนั้นโดยที่ฉันใช้วิธีการเดียวกันและพยายามแนบUserวัตถุจำลอง สิ่งนี้ล้มเหลวเนื่องจากฉันได้แนบวัตถุผู้ใช้จำลองนั้นไว้ก่อนหน้านี้ ฉันจะตรวจสอบสิ่งนี้ได้อย่างไร?

3
Multi-async ใน Entity Framework 6?
นี่คือรหัสของฉัน: var banner = context.Banners.ToListAsync() var newsGroup = context.NewsGroups.ToListAsync() await Task.WhenAll(banner, newsGroup); แต่เมื่อฉันเรียกใช้ฟังก์ชันจากคอนโทรลเลอร์ มันแสดงข้อผิดพลาด การดำเนินการที่สองเริ่มต้นในบริบทนี้ก่อนที่การดำเนินการแบบอะซิงโครนัสก่อนหน้านี้จะเสร็จสมบูรณ์ ใช้ 'await' เพื่อให้แน่ใจว่าการดำเนินการแบบอะซิงโครนัสเสร็จสิ้นก่อนที่จะเรียกใช้เมธอดอื่นในบริบทนี้ ไม่รับประกันว่าสมาชิกอินสแตนซ์ใด ๆ จะปลอดภัยต่อเธรด โปรดช่วยฉันแก้ปัญหานี้

4
วิธีใช้มุมมองในกรอบเอนทิตีโค้ดแรก [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันจะใช้มุมมองฐานข้อมูลในรหัสกรอบงานเอนทิตีก่อนได้อย่างไร

10
'มี ()' วิธีแก้ปัญหาโดยใช้ Linq ไปยังเอนทิตี?
ฉันกำลังพยายามสร้างแบบสอบถามที่ใช้รายการรหัสในส่วนคำสั่ง where โดยใช้ API ไคลเอนต์ Silverlight ADO.Net Data Services (และดังนั้น Linq To Entities) ไม่มีใครรู้วิธีแก้ปัญหาสำหรับการประกอบด้วยที่ไม่รองรับ? ฉันต้องการทำสิ่งนี้: List<long?> txnIds = new List<long?>(); // Fill list var q = from t in svc.OpenTransaction where txnIds.Contains(t.OpenTransactionId) select t; ลองสิ่งนี้: var q = from t in svc.OpenTransaction where txnIds.Any<long>(tt => tt == t.OpenTransactionId) select t; …

3
วิธีระบุชื่อตารางด้วย Entity Framework Code First Fluent API
ฉันมีเอนทิตีและฉันต้องการกำหนดค่าเอนทิตีเฟรมเวิร์กเพื่อแมปกับตารางฐานข้อมูลที่มีชื่ออื่น ฉันสามารถทำได้อย่างง่ายดายด้วยCode First DataAnnotations ( DataAnnotations.Schema.TableAttribute ) แต่เนื่องจากข้อ จำกัด ในตอนนี้ฉันจึงต้องใช้Code First Fluent API (อ็อบเจ็กต์โดเมนของฉันจะถูกใช้โดยไคลเอนต์ภายนอกดังนั้นจึงไม่ควรใช้เฉพาะเทคโนโลยี - เช่นมีการอ้างอิงถึง DataAnnotations) ฉันค้นหาใน MSDN แต่ไม่พบอะไรเลย เป็นไปได้หรือไม่และอย่างไร ขอขอบคุณ.

21
โมเดลที่สำรองบริบท 'ApplicationDbContext' มีการเปลี่ยนแปลงตั้งแต่สร้างฐานข้อมูล
ก่อนอื่นฉันไม่เห็นข้อผิดพลาดนี้ที่อื่นและฉันคิดว่าไม่ใช่การจำลองแบบดังนั้นโปรดอ่านสถานการณ์ทั้งหมดก่อน ทุกอย่างทำงานได้ดีจากนั้นฉันพยายามอัปเดตคลาสโมเดลหนึ่งของฉัน ( คลาสแอพและการอัปเดตจะแสดงความคิดเห็น) ซึ่งฉันจะแสดงรายการด้านล่าง และบูมฉันมีข้อผิดพลาดที่น่าเกลียดนี้ โมเดลที่สำรองบริบท 'ApplicationDbContext' มีการเปลี่ยนแปลงตั้งแต่สร้างฐานข้อมูล พิจารณาใช้ Code First Migrations เพื่ออัปเดตฐานข้อมูล ( http://go.microsoft.com/fwlink/?LinkId=238269 ) ใน System.Data.Entity.CreateDatabaseIfNotExists 1.InitializeDatabase(TContext context) at System.Data.Entity.Internal.InternalContext.<>c__DisplayClassf1.b__e () ที่ System.Data.Entity.Internal.InternalContext.PerformInitializationAction (การดำเนินการดำเนินการ) ที่ System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization () ที่ System.Data.Entity Internal.LazyInternalContext.b__4 (InternalContext c) ที่1.PerformAction(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(ActionการดำเนินการSystem.Data.Entity.Internal.RetryAction 1) ที่ System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase () ที่ System.Data.Entity.Internal.InternalContext entityType) ที่ System.Data.Entity.Internal.Linq.InternalSet1.Initialize() at System.Data.Entity.Internal.Linq.InternalSet1. …

5
ฉันจะปิดใช้งานการย้ายรหัสครั้งแรกได้อย่างไร
ฉันมีโมเดลเอนทิตีรหัสแรกใน EF5 แต่ฉันต้องการจัดการการเปลี่ยนแปลงฐานข้อมูลด้วยตนเอง - ฉันไม่ต้องการให้ EF แก้ไขฐานข้อมูลที่มีอยู่และข้อมูลทั้งหมด แต่เมื่อฉันทำการเปลี่ยนแปลงคู่ขนานในการทำแผนที่ EF และในฐานข้อมูล EF ปฏิเสธที่จะดำเนินการอย่างถูกต้องโดยบอกว่าฉันจำเป็นต้องใช้การย้ายรหัสก่อน ฉันจะปิดสิ่งนี้ได้อย่างไร

4
สตริงการเชื่อมต่อ "MyConnection" ในไฟล์คอนฟิกูเรชันของแอปพลิเคชันไม่มีแอตทริบิวต์ ProviderName ที่ต้องการ "
ผมใช้Entity Framework Code First, สตริงการเชื่อมต่อของฉันอยู่ในไฟล์คอนฟิกูเรชัน: <connectionStrings> <clear/> <add name="ApplicationServices" connectionString="Data Source=PC-X;Initial Catalog=MYdb;Integrated Security=True"/> </connectionStrings> เมื่อฉันพยายามเข้าถึงข้อมูล (สิ่งที่ควรสร้างฐานข้อมูล) เกิดข้อผิดพลาดต่อไปนี้: สตริงการเชื่อมต่อ "ApplicationServices" ในไฟล์คอนฟิกูเรชันของแอปพลิเคชันไม่มีแอตทริบิวต์ ProviderName ที่ต้องการ " ฉันขาดอะไรไป?

8
ฉันจะใช้ OrderBy บน IQueryable โดยใช้ชื่อคอลัมน์สตริงภายในวิธีการขยายทั่วไปได้อย่างไร
public static IQueryable<TResult> ApplySortFilter<T, TResult>(this IQueryable<T> query, string columnName) where T : EntityObject { var param = Expression.Parameter(typeof(T), "o"); var body = Expression.PropertyOrField(param,columnName); var sortExpression = Expression.Lambda(body, param); return query.OrderBy(sortExpression); } เนื่องจากประเภทของ OrderBy ไม่ได้อนุมานจาก sortExpression ฉันต้องระบุสิ่งนี้ในขณะทำงาน: var sortExpression = Expression.Lambda<T, TSortColumn>(body, param); หรือ return query.OrderBy<T, TSortColumn>(sortExpression); ฉันไม่คิดว่าจะเป็นไปได้อย่างไรก็ตามเนื่องจาก TSortColumn สามารถกำหนดได้ในระหว่างรันไทม์เท่านั้น มีวิธีแก้ปัญหานี้หรือไม่?

2
Async PartialView ทำให้เกิดข้อยกเว้น“ HttpServerUtility.Execute ถูกบล็อก…”
ฉันมีมุมมองบางส่วนที่พยายามดึงข้อมูลIEnumerable<Post>จากฐานข้อมูลโดยใช้ async ... วิธี public static class PostService { public static int PostsPerPage = 50; public static async Task<IEnumerable<Post>> GetRecentAsync(int page = 0) { return await entityFrameworkDbContext.Posts .ToListAsync(); } } PartialView public async Task<ActionResult> Recent(int page = 0) { return PartialView(await PostService.GetRecentAsync(page)); } แล้วถ้าลองเรียกดู @Html.Action("Recent", "Post") ฉันได้รับข้อยกเว้นดังต่อไปนี้ HttpServerUtility ดำเนินการบล็อกในขณะที่รอให้การดำเนินการแบบอะซิงโครนัสเสร็จสมบูรณ์ คำอธิบาย: …

2
วิธีการใช้ C # 8.0 ชนิดอ้างอิงที่สามารถลบล้างได้ด้วยโมเดล Entity Framework Core ได้อย่างไร
ฉันเปิดใช้งาน C # 8.0 ประเภทการอ้างอิงที่เป็นโมฆะในโครงการ. NET Core 3.0 โครงการใช้ Entity Framework Core 3.0 เพื่อเข้าถึงฐานข้อมูล ต่อไปนี้เป็นตัวแบบข้อมูลที่หัวเรื่องไม่ควรเป็นโมฆะ public class Vehicle { public int Id { get; private set; } public string Title { get; private set; } // Entity Framework Core is instructed to bind to the private _drivers field in a …

2
วิธีการเข้าร่วมกลุ่มใน. NET Core 3.0 Entity Framework
ด้วยการเปลี่ยนแปลงใน. NET Core 3.0 ฉันได้รับ ... NavigationExpanding ExpressionVisitor 'ล้มเหลว สิ่งนี้อาจบ่งบอกถึงข้อบกพร่องหรือข้อ จำกัด ใน EF Core ดู https://go.microsoft.com/fwlink/?linkid=2101433สำหรับข้อมูลรายละเอียดเพิ่มเติม) ---> System.InvalidOperationException: การประมวลผลนิพจน์ LINQ 'GroupJoin, ... นี่เป็นแบบสอบถามที่ง่ายมากดังนั้นจึงต้องมีวิธีดำเนินการใน. NET CORE 3.0: var queryResults1 = await patients .GroupJoin( _context.Studies, p => p.Id, s => s.Patient.Id, (p, studies) => new { p.DateOfBirth, p.Id, p.Name, p.Sex, Studies =studies.Select(s1=>s1) …

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