ObjectSet.Single(谓词)不起作用(Where()和toList()方法)除非我这样写:
ObjectSet.Cast<TEntity>().Single<TEntity>(predicate)
但我不知道如何使用AddObject和DeleteObject方法解决问题:
public void Add<TEntity>(TEntity entity)
{
ObjectSet.AddObject(entity);
}
错误消息告诉我“实体”是一个错误的参数。问题与EF 4.1有关吗?
答案 0 :(得分:2)
以下是我的通用存储库中的一些代码:
public void Add<K>(K entity) where K : class
{
context.CreateObjectSet<K>().AddObject(entity);
}
public K SingleOrDefault<K>(Expression<Func<K, bool>> predicate) where K : class
{
K entity = context.CreateObjectSet<K>().SingleOrDefault<K>(predicate);
return entity;
}
请参阅以下链接: http://msdn.microsoft.com/en-us/library/dd382944.aspx
编辑:如果您已经创建了一个ObjectSet,那么您的类已经定义了TEntity,因此您的方法应该如此调整:
public void Add(TEntity entity)
{
ObjectSet.AddObject(entity);
}
您还应该能够对Single()方法进行类似的调整,不需要演员。