ObjectSet.AddObject(T) problem?

本文关键字:problem AddObject ObjectSet | 更新日期: 2023-09-27 18:04:42

ObjectSet.Single(谓词)不工作(Where()和toList()方法也是如此),除非我这样写:

ObjectSet.Cast<TEntity>().Single<TEntity>(predicate)

但是我不知道该怎么做来解决AddObject和DeleteObject方法的问题:

public void Add<TEntity>(TEntity entity)
    {
        ObjectSet.AddObject(entity);
    }

错误消息告诉我"entity"是一个错误的参数。问题是否与EF 4.1有关?

ObjectSet.AddObject(T) problem?

下面是我的通用存储库中的一些片段:

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()方法进行类似的调整,不需要强制转换。