我知道它的标题,但这就是我定义问题的方式。 我的工作代码:
public class UnitOfWork : IUnitOfWork
{
public MyContext MyContext { get; set; }
public UnitOfWork(MyContext myContext)
{
MyContext = myContext;
}
public UnitOfWork()
{
MyContext = new MyContext();
}
public ICrudOperations<T> RepoCrudOperationsFor<T>() where T : class
{
return new CRUDoperations<T>(MyContext);
}
public async Task Complete()
{
await Task.Run(() =>
{
MyContext.SaveChanges();
});
}
}
现在假设我想通过工作单元创建一个实体。
这是我的班级,我想打电话
public async Task CreateUnitOfWork()
{
_unitOfWork.MyContext = _db;
_entityOneObj = new EntityOneObj
{
ObjectType = ObjectType.EntityOneObj,
Text = _text = "Crud2",
UserID = _userid = 9
};
await _unitOfWork.RepoCrudOperationsFor<EntityOneObj>().CreateAsync(_entityOneObj );
await _unitOfWork.Complete();
}
这很好用。但问题是 &#34;我在这里定义&lt;&gt;内的实体名称我想创造。但实际上我不能这样做,而是我需要像那样和#34;
Type type= typeof(EntityOneObj);
但我无法添加&#34;输入&#34;我的内心
RepoCrudOperationsFor<type>
像那样。
什么是解决方案?我应该在我的工作单位或我的测试方法中定义吗?但是如何?
public interface ICrudOperations<T> where T : class
{
Task Create<T>(T objectType) where T : class;
Task Delete<T>(T entity) where T : class;
Task Update<T>(T entity) where T : class;
}