我正在尝试实现一个完全通用的CRUD API,通过上下文可以传入任何类类型并通常保存,更新等.
我有一个存储库,可以保存任何模型类型,如下所示:
public class Repository<T> : IRepository<T> where T : class
{
private Context _db = new Context();
public T Add(T newItem)
{
var result = _db.Set<T>().Add((T)newItem);
_db.SaveChanges();
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
这继承自实现所有"add"方法的通用接口:
public interface IRepository<T> where T : class
{
T Add(T newItem);
}
Run Code Online (Sandbox Code Playgroud)
我很难理解为什么我不能将泛型类型传递给存储库接口的新实例?我理想的喜欢这样的东西:
var data = new Data(){
Id = 1
};
IRepository<data.GetType()> repo = new Repository<data.GetType()>();
Run Code Online (Sandbox Code Playgroud)
从而允许我将任何类型传递给方法并在其后面生成正确的接口.
它允许我传递一种具体的类型,但这种类型会使其成为通用的对象.
任何关于这个的想法或解释为什么它不可能将不胜感激 - 谢谢.
我试图详细了解一段时间内每小时的分钟数。例如,假设我有两个日期时间,如下所示:
DateTime onTime = new DateTime(2019, 11, 6, 6, 30, 0);
DateTime offTime = new DateTime(2019, 11, 6, 10, 45, 0);
Run Code Online (Sandbox Code Playgroud)
所以有两个 DateTime 代表:
"2019-11-06 06:30:00"
"2019-11-06 10:45:00"
Run Code Online (Sandbox Code Playgroud)
我想要实现的是给定时间段内每小时的分钟数细分。我希望它看起来像:
int 6 = 30; // Hour 6 = 30 minutes
int 7 = 60; // Hour 7 = 60 minutes
int 8 = 60; // Hour 8 = 60 minutes
int 9 = 60; // Hour 8 = 60 minutes
int 10 = 45; // Hour 10 = 45 minutes
Run Code Online (Sandbox Code Playgroud)
我可以确定是尝试使用 …