Azure移动应用程序 - 使用实体数据模型类

时间:2015-05-29 11:34:56

标签: c# entity-framework azure azure-mobile-services

我有一个Azure Mobile App项目,默认情况下创建了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​​ Controller继承DAL项目,但是想要检查在这种情况下使用TableController的可能性。

1 个答案:

答案 0 :(得分:1)

你可以做的是遵循this example所做的事情。它有一个现有的模型,并使用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>();

});

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