ObjectSet.AddObject(T) проблема?
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 ответ
Решение
Вот несколько фрагментов из моего общего репозитория:
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(), не должно быть необходимости в приведении.