Azure移动应用程序-使用实体数据模型类的表控制器

本文关键字:数据模型 控制器 实体 移动 应用程序 Azure | 更新日期: 2023-09-27 17:51:04

我有一个Azure移动应用程序项目,默认创建TodoItem表控制器。我还有一个使用EF6实体数据模型的DAL项目,这是在我的其他ASP中提到的。. Net MVC项目。

我希望在我的应用程序项目中使用相同的DAL项目,而不是重新定义每个实体。我理解,对于表控制器,这些实体需要从EntityData派生。而DAL项目中的则不是,例如如下

namespace DAL.Model
{
   using System;
   using System.Collections.Generic;
   public partial class TodoItem
   {
      public System.Guid Id { get; set; }
      public string Text { get; set; }
      public Nullable<bool> Complete { get; set; }
   }
}

我知道我可以使用API控制器继承DAL项目,但想检查在这种情况下使用TableController的可能性。

Azure移动应用程序-使用实体数据模型类的表控制器

您可以按照下面的示例做。它有一个现有的模型,并使用dto来创建一个具有EntityData继承的"移动"版本。

然后您可以在您的DAL项目项和您的移动项目之间创建映射。

例如:

Mapper.Initialize(cfg =>
{
    cfg.CreateMap<MobileOrder, Order>();
    cfg.CreateMap<MobileCustomer, Customer>();
    cfg.CreateMap<Order, MobileOrder>()
        .ForMember(dst => dst.MobileCustomerId, map => map.MapFrom(x => x.Customer.Id))
        .ForMember(dst => dst.MobileCustomerName, map => map.MapFrom(x => x.Customer.Name));
    cfg.CreateMap<Customer, MobileCustomer>();
});

然后创建一个域管理器来管理两者之间的逻辑,并使用它来为您的移动服务创建您的表控制器。