Tôi đang tìm kiếm một tương đương với DataContext.GetTable<TEntity>
trong Khuôn khổ thực thể. Tôi đã tìm thấy phương thức ObjectContext.CreateQuery<T>
nhưng khác với DataContext.GetTable<TEntity>
vì nó cần chuỗi truy vấn hoạt động.Khung thực thể có tương đương với DataContext.GetTable <TEntity> từ Linq2Sql (ObjectContext.CreateQuery <T>?)
Có cách nào để lấy đối tượng IQueryable cho bảng sử dụng loại thực thể mà không chỉ định chuỗi truy vấn không?
*EDIT: Added code snippet*
Đây là đoạn trích của lớp Repository mà tôi đã triển khai thực hiện với linq2sql. Tôi không thể sử dụng ObjectContext.[TableName]
vì nó sẽ không còn chung chung nữa.
public class BaseRepository<TClass> : IDisposable
where TClass : class
{
protected BaseRepository(DataContext database)
{
_database = database;
}
...
public IQueryable<TClass> GetAllEntities()
{
IQueryable<TClass> entities = _database.GetTable<TClass>();
return entities;
}
public IQueryable<TClass> GetEntities(Expression<Func<TClass, bool>> condition)
{
IQueryable<TClass> table = _database.GetTable<TClass>();
return table.Where(condition);
}
*EDIT: Added my solution (so far..)*
Đây là những gì tôi đang sử dụng:
public IQueryable<TClass> GetEntities(Expression<Func<TClass, bool>> condition)
{
IQueryable<TClass> table = _database.CreateQuery<TClass>(typeof(TClass).Name);
return table.Where(condition);
}
này hoạt động miễn là tên lớp là như nhau trong những tên bảng. Điều này sẽ trở thành một vấn đề đối với tôi khi tôi bắt đầu sử dụng các đối tượng khác nhau cho cùng một bảng.
Tôi hy vọng tôi đã rõ ràng, cảm ơn trước,
Marco :)
Marco B, bạn đã tìm thấy một giải pháp? Tôi có cùng một vấn đề và thậm chí đi qua "[EntitySet]" như tham số để CreateQuery tôi không thể làm cho nó hoạt động. –
Tôi đã tìm thấy câu trả lời này trước tiên và [câu trả lời này] (http://stackoverflow.com/questions/7263083/gettable-equivalent-for-objectcontext) sau đó. Có vẻ như câu trả lời thứ hai có một cách dễ dàng hơn để làm điều này giống như 'GetTable' từ Linq2SQL –