【问题标题】:Generic Method Signature for DAL Update methodDAL 更新方法的通用方法签名
【发布时间】:2011-11-07 00:57:13
【问题描述】:

我正在使用一个多用途的存储过程,它为声明或策略执行插入或更新。我只想创建一个 DAL 方法来调用此更新/插入。

我有一个包含声明对象和策略对象的所有属性的 IBaseAdjustment。 Claim 是 Policy 的子集,因此它将继承 Policy。如果没有传入存储过程,则将存储过程设置为默认值,因此我尽可能使用可为空的属性。

我卡在 Update 调用的方法签名上。我有

    public bool UpdateManualAdjustmentTransaction<T>() where T : IBaseAdjustment
    {}

我只是不确定现在如何设置对我的实体的引用来设置我认为会像这样的参数

IbaseAdjustment _adjustment = T as IBaseAdjustment; 

但它不喜欢那样。建议? '谢谢

【问题讨论】:

  • 我想我明白了 public bool UpdateManualAdjustmentTransaction(IBaseAdjustment 调整) {}?
  • 您应该将 T 作为一种类型来处理。T 作为 IBaseAdjustment 根本没有意义。我不清楚您想对该功能进行什么调整。以及这种调整的来源。也许你的意思是有类似 public bool Update(T adj) where T:IBaseAdjustment,然后你可以使用 adj,因为它是一个 IBaseAdjustment。但也许你不需要泛型。

标签: c# generics data-access-layer


【解决方案1】:

如果您只是要使用接口,则根本不需要这是一个通用方法:

public bool UpdateManualAdjustmentTransaction(IBaseAdjustment baseAdjustment)
{
     // use baseAdjustment
}

这将允许您将任一实体直接传递给此方法。

【讨论】:

  • 这是我在发布问题大约 2 秒后想到的,然后再读回来。我想我需要休息一下;)谢谢
猜你喜欢
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
相关资源
最近更新 更多