c# – 何时使用TableController以及何时使用自定义DomainManager
发布时间:2020-12-15 22:26:37 所属栏目:百科 来源:网络整理
导读:我想弄清楚什么时候有一个自定义域管理器是有意义的.最初,每当我们在TableController T中有一个非T类型的返回类型时,我就会很难我们需要创建一个新的自定义DomainManager. 但是,在示例应用程序Sport by Xamarin中,它们的控制器继承自TableController Athlete
我想弄清楚什么时候有一个自定义域管理器是有意义的.最初,每当我们在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,因为它们都具有超类 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |