ObjectSet.AddObject(T)问题?

时间:2011-08-04 11:46:21

标签: c# entity-framework entity-framework-4 entity-framework-4.1 objectset

ObjectSet.Single(谓词)不起作用(Where()和toList()方法)除非我这样写:

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

但我不知道如何使用AddObject和DeleteObject方法解决问题:

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

错误消息告诉我“实体”是一个错误的参数。问题与EF 4.1有关吗?

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