C# - 依赖注入 - 存储库层 - 调用 select
C# - Dependency injection - Repository Layer - Calling select
我意识到需要依赖注入,因为我需要一个新的 class 但无法将其创建为实体,因为数据库中不存在 class。我成功地完成了统一部分。我只是坚持调用它。以下代码是我尝试过的,但它不允许我使用 select
选项。我得到的错误是
The type arguments for method cannot be inferred from the usage. Try
specifying the type arguments explicitly
我用谷歌搜索了那个错误,但大多数发布该错误的人背后都有很长的代码历史,这让我很难理解。
谁能看出我哪里错了??
public virtual List<IMcrVolumeAdjustmentMainGrid> GetVolumeAdjustmentByLoadId(Guid? LoadId)
{
var AdjustmentGroups = UnitOfWork.Context.Set<McrVolumeAdjustment>()
.Include(y => y.McrVolumeAdjustmentReason)
.Where(x => x.McrPickup.McrLoadId == LoadId && x.McrVolumeAdjustmentReason.McrVolumeAdjReasonCode != McrVolumeAdjReasonCodeEnum.LoadRejected)
.GroupBy(x => new { x.McrVolumeAdjustmentReason, x.EffectiveYear, x.EffectiveMonth, x.LastModifierIdentityName })
.ToList();
return AdjustmentGroups.Select(
x =>
{
var entry = DefaultContainer.Current.Resolve<IMcrVolumeAdjustmentMainGrid>();
entry.EffectiveDate = new DateTime(x.Key.EffectiveYear, x.Key.EffectiveMonth, 01);
entry.McrReason = x.Key.McrVolumeAdjustmentReason.Description;
entry.LastModifierIdentityName = x.Key.LastModifierIdentityName;
entry.TotalAdjustment = x.Sum(y => y.AdjustedMilkVolume);
}
).ToList();
}
看来你的SELECT声明是无效的,因为你return什么都没有。
您应该将 "return entry;" 代码添加到 select lambda 的末尾。
我意识到需要依赖注入,因为我需要一个新的 class 但无法将其创建为实体,因为数据库中不存在 class。我成功地完成了统一部分。我只是坚持调用它。以下代码是我尝试过的,但它不允许我使用 select
选项。我得到的错误是
The type arguments for method cannot be inferred from the usage. Try specifying the type arguments explicitly
我用谷歌搜索了那个错误,但大多数发布该错误的人背后都有很长的代码历史,这让我很难理解。
谁能看出我哪里错了??
public virtual List<IMcrVolumeAdjustmentMainGrid> GetVolumeAdjustmentByLoadId(Guid? LoadId)
{
var AdjustmentGroups = UnitOfWork.Context.Set<McrVolumeAdjustment>()
.Include(y => y.McrVolumeAdjustmentReason)
.Where(x => x.McrPickup.McrLoadId == LoadId && x.McrVolumeAdjustmentReason.McrVolumeAdjReasonCode != McrVolumeAdjReasonCodeEnum.LoadRejected)
.GroupBy(x => new { x.McrVolumeAdjustmentReason, x.EffectiveYear, x.EffectiveMonth, x.LastModifierIdentityName })
.ToList();
return AdjustmentGroups.Select(
x =>
{
var entry = DefaultContainer.Current.Resolve<IMcrVolumeAdjustmentMainGrid>();
entry.EffectiveDate = new DateTime(x.Key.EffectiveYear, x.Key.EffectiveMonth, 01);
entry.McrReason = x.Key.McrVolumeAdjustmentReason.Description;
entry.LastModifierIdentityName = x.Key.LastModifierIdentityName;
entry.TotalAdjustment = x.Sum(y => y.AdjustedMilkVolume);
}
).ToList();
}
看来你的SELECT声明是无效的,因为你return什么都没有。 您应该将 "return entry;" 代码添加到 select lambda 的末尾。