- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图弄清楚什么时候拥有自定义域管理器才有意义。最初,我坚持认为,每当我们有一个不是 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 类型,而您现在必须转换为不同的类型。请注意,这两种类型 Athlete
和AthleteDto
在该示例中继承自 EntityData
,因为它们都有父类(super class) AthleteBase
.
关于c# - 何时使用 TableController<T> 以及何时使用 Custom DomainManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35188668/
我试图弄清楚什么时候拥有自定义域管理器才有意义。最初,我坚持认为,每当我们有一个不是 T 类型的返回类型时,在TableController我们需要创建一个新的自定义 DomainManager。 但
我是一名优秀的程序员,十分优秀!