gpt4 book ai didi

c# - 何时使用 TableController 以及何时使用 Custom DomainManager

转载 作者:行者123 更新时间:2023-11-30 12:42:01 29 4
gpt4 key购买 nike

我试图弄清楚什么时候拥有自定义域管理器才有意义。最初,我坚持认为,每当我们有一个不是 T 类型的返回类型时,在TableController<T>我们需要创建一个新的自定义 DomainManager。

但是,在示例应用程序中 Sport by Xamarin ,他们的 Controller 继承自 TableController<Athlete> ,但他们的 GET 方法返回 IQueryable<AthleteDto>

public IQueryable<AthleteDto> GetAllAthletes()
{
return ...;
}

注:AthleteDto继承自 EntityData

如果这是允许的,那么我为什么要费尽心思创建一个新的 DomainManager?

如果我的返回值不是继承自EntityData,我是否只需要创建一个新的DomainManager? ?

最佳答案

您应该为要连接的每种数据源创建一个新的 DomainManager。例如,有一个用于 Azure 表存储的内置域管理器和一个用于使用 Entity Framework 的 SQL Azure 的域管理器。

您的数据类型需要继承自EntityData或实现接口(interface)ITableData为了使用TableController<T> 。这与域管理员问题无关。

在您引用的示例中,允许在域管理器和 Controller 方法的返回类型之间使用不同的类型,但这会使代码更加复杂。这是因为基类方法将返回 DTO 类型,而您现在必须转换为不同的类型。请注意,这两种类型 AthleteAthleteDto在该示例中继承自 EntityData ,因为它们都有父类(super class) AthleteBase .

关于c# - 何时使用 TableController<T> 以及何时使用 Custom DomainManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35188668/

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