我想弄清楚什么时候有一个自定义域管理器是有意义的.最初,每当我们在TableController< T>中有一个非T类型的返回类型时,我就会很难我们需要创建一个新的自定义DomainManager.
但是,在示例应用程序Sport by Xamarin中,它们的控制器继承自TableController< Athlete>,但是它们的GET方法返回IQueryable< AthleteDto>
public IQueryable<AthleteDto> GetAllAthletes() { return ...; }
注意:AthleteDto继承自EntityData
如果这是允许的,那么为什么我会遇到创建新DomainManager的麻烦?
如果我的返回值没有从EntityData继承,我是否只需要创建一个新的DomainManager?
解决方法
您应该为要连接的每种数据源创建一个新的DomainManager.例如,Azure Table Storage有一个内置的域管理器,使用Entity Framework有一个用于sql Azure的域管理器.
您的数据类型需要从EntityData继承或实现接口ITableData才能使用TableController< T>.这与域管理器问题无关.
对于您引用的示例,允许在域管理器和控制器方法的返回类型之间使用不同的类型,但它可以使代码更复杂.这是因为基类方法将返回DTO类型,您现在必须转换为其他类型.请注意,该示例中的Athlete和AthleteDto类型都继承自EntityData,因为它们都具有超类AthleteBase
.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。