Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FakeDbSet<T> : DbSet<T>, IQueryable, IEnumerable<T> where T : class {
- List<T> _data;
- public FakeDbSet(List<T> items=null) {
- _data = items ?? new List<T>();
- }
- public void Clear() {
- _data = new();
- }
- public override T Find(params object[] keyValues) {
- throw new NotImplementedException("Derive from FakeDbSet<T> and override Find");
- }
- public override EntityEntry<T> Add(T item) {
- _data.Add(item);
- return item as EntityEntry<T>;
- }
- public override EntityEntry<T> Remove(T item) {
- _data.Remove(item);
- return item as EntityEntry<T>;
- }
- public override EntityEntry<T> Attach(T item) {
- return null;
- }
- public T Detach(T item) {
- _data.Remove(item);
- return item;
- }
- public T Create() {
- return Activator.CreateInstance<T>();
- }
- public TDerivedEntity Create<TDerivedEntity>() where TDerivedEntity : class, T {
- return Activator.CreateInstance<TDerivedEntity>();
- }
- public List<T> Local {
- get { return _data; }
- }
- public override IEntityType EntityType => throw new NotImplementedException();
- public override void AddRange(IEnumerable<T> entities) {
- _data.AddRange(entities);
- }
- public override void RemoveRange(IEnumerable<T> entities) {
- for (int i = entities.Count() - 1; i >= 0; i--) {
- T entity = entities.ElementAt(i);
- if (_data.Contains(entity)) {
- Remove(entity);
- }
- }
- }
- Type IQueryable.ElementType {
- get { return _data.AsQueryable().ElementType; }
- }
- Expression IQueryable.Expression {
- get { return _data.AsQueryable().Expression; }
- }
- IQueryProvider IQueryable.Provider {
- get { return _data.AsQueryable().Provider; }
- }
- IEnumerator IEnumerable.GetEnumerator() {
- return _data.GetEnumerator();
- }
- IEnumerator<T> IEnumerable<T>.GetEnumerator() {
- return _data.GetEnumerator();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement