gpt4 book ai didi

entity-framework - 通用ViewModel

转载 作者:行者123 更新时间:2023-12-03 10:55:45 29 4
gpt4 key购买 nike

使用EF 4,我具有“业务”实体的几种子类型(客户,供应商,运输公司等)。它们确实必须是子类型。我正在构建一个通用的 View 模型,该模型调用一个服务,从该服务可以访问通用存储库。

由于我有4个子类型,因此最好将“通用” View 模型用于所有这些子类型。问题当然是我必须在通用存储库中调用特定类型,例如:

BusinessToRetrieve = _repository
.LoadEntity<Customer>(o => o.CustomerID == customerID);

能够调用 <SomethingElse>(somethingElse是子类型中的一个或其他子类型)会很好,否则我将不得不创建4个几乎相同的viemodel,这当然很浪费!子类型实体名称可用于viewmodel,但是我一直无法弄清楚如何使上述调用将其转换为类型。实现我想要的一个问题是,大概传入的lambda表达式将无法解决“通用”调用?

最佳答案

听起来您需要使自己熟悉generics。首先,您将可以编写如下代码:

class ViewModel<T> where T : Business {
public void DoSomething(Func<T, bool> predicate) {
BusinessToRetreive = _repository.LoadEntity<T>(predicate);
}
}

然后您可以说:
ViewModel<Customer> c = new ViewModel<Customer>();
c.DoSomething(o => o.CustomerID == customerID);

关于entity-framework - 通用ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2087927/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com