将KeyValue列表或词典添加到DBInterface

时间:2016-02-27 11:08:39

标签: c# database entity-framework interface

我有以下用于更新数据库的界面

public interface IMydDataContext : IDisposable
{
    IRepository<TEntity, TKrey> GetRepository<TEntity, TKrey>() where TEntity : class, IDomainObject<TKrey>;
    IDbSet<TEntity> Set<TEntity, TKey>() where TEntity : class, IDomainObject<TKey>;
    int SaveChanges();
    Task<int> SaveChangesAsync();
}

GetRepository函数与我的_DataContext一起使用,其定义如下:

private IMydDataContext _dataContext;

并按以下方式使用:

 var newGroup = new Group
        {

            Id = Guid.NewGuid(),
            Key = DiContainer.GetInstance<IEntityKeyGeneratorService>().Generate(request.Name),
            Name = name,
            CreatedOn = DateTime.UtcNow,
            CreatedById = GetUserIdFromHttpContext().ToString()
        };

_dataContext.GetRepository<Group, Guid>().Insert(newGroup);

为了提高效率,我创建了一个KeyValuePair列表,可以保存newGroup的几次迭代(这样我可以将它们一次性推送到DB):

List<KeyValuePair<Group, Guid>> _dataContextList = new List<KeyValuePair<Group, Guid>>();

_dataContextList.Insert(0,new KeyValuePair<Group,Guid>(newGroup, newGroup.Id));

我的问题是:

如何使用这个新的KeyValuePair列表&#34; _dataContextList&#34;使用&#34; GetReposititory&#34;或一般的IMYDataContext类?

我想让我的_dataContextList具有与vanilla _dataContext相同的功能,这样它就可以以相同的方式向同一个地方发送它的每个值。

0 个答案:

没有答案