使用System; MVC Storefront- Rob Conery参考难点?

use*_*160 1 model-view-controller

我按照rob conery制作的StoreFront MVC应用程序视频tuturial.我注意到Commerce.MVC.Web引用了Commerce.MVC.Data和Commerce.MVC.Services.这是因为Commerce.MVC.Web需要Commerce.MVC.Data,因为其中定义了实体.什么是仅引用Commerce.MVC.Services的更好方法.我是否需要将实体纳入服务?或任何建议?

粗体文本来自Commerce.MVC.Data:

Commerce.MVC.Data
Commerce.MVC.Services- reference the Commerce.MVC.Data
Commerce.MVC.Web - reference both the Commerce.MVC.Data and Commerce.MVC.Services
Run Code Online (Sandbox Code Playgroud)

这里是CatalogController的示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Commerce.MVC.Data;
using Commerce.MVC.Services;

namespace Commerce.MVC.Web.Controllers {
    public class CatalogController : Controller {

        #region .ctor
        ICatalogService _catalogService;

        public CatalogController(ICatalogService catalogService) {
            _catalogService = catalogService;
        }

        #endregion  

        #region ViewData
        /// <summary>
        /// Class used for transferring data to the View
        /// </summary>
        public class CatalogData {

            public CatalogData() { }
            public CatalogData(List<Category> categories, Category parent, Category child) {
                this.Categories = categories;
                this.Category = parent;
                this.SubCategory = child;
            }

            public IList<Category> Categories;

           //The below is came from Commerce.NVC.Data

            public Product Product { get; set; }
            public Category Category { get; set; }
            public Category SubCategory { get; set; }
        }
        #endregion
}
}
Run Code Online (Sandbox Code Playgroud)

小智 9

编辑回复......

您可以使用该服务,但服务会返回一些内容,而某些内容就是您的实体.为了使您的Web应用程序能够使用这些实体,它需要引用包含实体的类吗?

现在你可以通过返回Anonymous类型来解决这个问题,或者创建你自己的DTO - 但是你会丢失验证以及Entity在其上声明的所有内容.实际上 - 您正在复制代码.

你看到了吗?