通用存储库 EF4 CTP5 getById
我有一个通用存储库,我正在尝试添加 GetById 方法,如下所示 C# LINQ to SQL:重构此通用 GetByID 方法问题
是我的存储库不使用 System.Data.Linq.DataContext 相反,我使用 System.Data.Entity.DbContext
因此,我在尝试使用时遇到错误
Mapping.GetMetaType
,
return _set.Where( whereExpression).Single();
如何在 CTP5 中实现通用 GetById 方法?我应该在我的存储库中使用 System.Data.Entity.DbContext 吗?
这是我的存储库类的开始
public class BaseRepository<T> where T : class
{
private DbContext _context;
private readonly DbSet<T> _set;
public BaseRepository()
{
_context = new MyDBContext();
_set = _context.Set<T>();
}
I have a generic repository an I am trying to add a GetById method as shown here
C# LINQ to SQL: Refactoring this Generic GetByID method
The problem is my repository does not use System.Data.Linq.DataContext
instead I use System.Data.Entity.DbContext
So I get errors where I try to use
Mapping.GetMetaType
and
return _set.Where( whereExpression).Single();
How can I implement a generic GetById method in CTP5? Should I be using System.Data.Entity.DbContext in my Repository.
Here is the start of my repository class
public class BaseRepository<T> where T : class
{
private DbContext _context;
private readonly DbSet<T> _set;
public BaseRepository()
{
_context = new MyDBContext();
_set = _context.Set<T>();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最基本的方法很简单,
如果您知道所有实体都有名为 Id 的主键(它不必在数据库中称为 Id,但必须映射到属性 Id),您可以简单地使用以下内容:
如果数据类型并不总是相同的,您可以使用:
您也可以简单地使用:
The most basic approach is simply
If you know that all your entities have primary key called Id (it doesn't have to be called Id in DB but it must be mapped to property Id) of defined type you can use simply this:
If data type is not always the same you can use:
You can also simply use:
试试这个
try this