Có cách nào để lấy các loại POCO từ cá thể DbContext được chỉ định không?EF CodeFirst: Nhận tất cả các loại POCO cho DbContext
Trả lời
Bạn cần truy cập vào MetadataWorkspace
public class MyContext : DbContext
{
public void Test()
{
var objectContext = ((IObjectContextAdapter)this).ObjectContext;
var mdw = objectContext.MetadataWorkspace;
var items = mdw.GetItems<EntityType>(DataSpace.CSpace);
foreach (var i in items)
{
Console.WriteLine("Class Name: {0}", i.Name);
}
}
tnx, nhưng tôi cần quyền truy cập vào các thuộc tính Loại, thuộc tính và thuộc tính POCO lớp - Các trường hợp EntityType trả về việc thực hiện riêng trong Properties, PropertiesMetadata và v.v. – DrAlligieri
@DrAlligieri Bạn có thể lấy tên đầy đủ của loại và sau đó sử dụng phản xạ để truy cập các thuộc tính và thuộc tính. – Eranga
FullName trả về "CodeFirstDatabaseSchema.TypeNameThere", CodeFirstDatabaseSchema - là không gian tên sai cho lớp POCO – DrAlligieri
@Lei Yang: bạn có thể sử dụng điều này để có được tất cả các loại vào một danh sách.
var objectContext = ((IObjectContextAdapter) dbContext).ObjectContext;
var mdw = objectContext.MetadataWorkspace;
var items = mdw.GetItems<EntityType>(DataSpace.CSpace);
var dbContextAssembly = dbContext.GetType().Assembly;
var entityTypes = new List<Type>();
foreach (var i in items) {
entityTypes.Add(dbContextAssembly.GetType(i.FullName));
}
Thật không may, tôi không thể chỉnh sửa các câu trả lời được chấp nhận - bạn chỉ cần thay đổi dataspace sử dụng như sau
var items = mdw.GetItems<EntityType>(DataSpace.OSpace);
để có được lớp POCO của bạn thay vì các proxy EF.
- 1. Tạo EF CodeFirst DbContext sử dụng Roslyn
- 2. Làm cách nào để lấy siêu dữ liệu dbsets từ EF CodeFirst DbContext?
- 3. Làm thế nào để cấu hình DbContext để làm việc với Oracle ODP.Net và EF CodeFirst?
- 4. DbContext của EF có nên chứa tất cả các bảng không?
- 5. EF DbContext và StructureMap scoping
- 6. Nhận tất cả các loại thẻ nút
- 7. EF 4.1 - DBContext SqlQuery và Bao gồm
- 8. Nhận tất cả mật khẩu loại nhập
- 9. EF 4.2, CodeFirst - Thuộc tính điều hướng bên trong một loại phức tạp
- 10. Tôi có thể đọc siêu dữ liệu EF DbContext bằng cách nào?
- 11. EF CodeFirst CTP5 - Thả thủ công và tạo DB?
- 12. Thời gian khởi động EF 7 giây ngay cả đối với DbContext
- 13. ef 5 codefirst enum collection không được tạo trong cơ sở dữ liệu
- 14. Mã EF Đầu tiên 4.3 Vòng đời DbContext?
- 15. Nhận tất cả các loại triển khai loại hình chung mở cụ thể
- 16. Nhận tất cả các hàng từ SQLite
- 17. Nhận tất cả các thẻ từ taggit
- 18. Nhận tất cả các yếu tố iframe
- 19. Lớp POCO trong EF không hoạt động như mong đợi
- 20. EF có lưu trữ các thực thể giữa các trường hợp khác nhau của DbContext không?
- 21. nhận tất cả loại tài liệu umbraco bằng dao cạo
- 22. nhận tất cả các trường từ DynamicForm
- 23. Nhận tất cả các phím được nhấn
- 24. C#: Cách nhận tất cả các thuộc tính chuỗi công khai (cả nhận và đặt) của một loại
- 25. Loại trừ tất cả các tệp thuộc loại trong NuGet
- 26. EF CodeFirst: Hoặc tham số @objname là mơ hồ hoặc @objtype được xác nhận quyền sở hữu (COLUMN) là sai
- 27. Sử dụng cả ObjectContext và DbContext
- 28. Object.watch() cho tất cả các trình duyệt?
- 29. cách lấy tất cả các sản phẩm thể loại amazon
- 30. ASP.NET MVC: Nhận tất cả các bộ điều khiển
có cùng vấn đề, bạn đã giải quyết chưa? Tôi cần trợ giúp .. =/ –