Как создать сложные типы с структурой объекта? (Включить или частичное представление) - PullRequest
1 голос
/ 23 апреля 2019

Я давно работаю над EntryFreamwork с Mvc.

При создании сложных типов я использую свой метод include для создания сущностей или я ломаю модель, отправляя идентификатор частичным представлениям?

Я использую частичное представление

<div class="sidebar-item product-info">
            <h4>İlan Durumu</h4>
            <hr class="line-separator">
            <!-- INFORMATION LAYOUT -->
            <div class="information-layout">
                <!-- INFORMATION LAYOUT ITEM -->
                <div class="information-layout-item">
                    <p class="text-header">Başlangıç Fiyatı:</p>
                    <p>@string.Format("{0:N0}", Model.MaxPrice) ₺</p>
                </div>
                <!-- /INFORMATION LAYOUT ITEM -->
                @Html.Action("AuctionBestOffer", "Offer", new { auction = Model.Id })
                <!-- INFORMATION LAYOUT ITEM -->
                <div class="information-layout-item">
                    <p class="text-header">Favorilere Ekle:</p>
                    @Html.Action("UserHasFavoriteAuctionDetail", "FavoriteAuction", new { auction = Model.Id, title = Model.Title })
                </div>
                <!-- /INFORMATION LAYOUT ITEM -->
            </div>
            <!-- INFORMATION LAYOUT -->
        </div>

АукционComplexModel

public class GetAuctionDetailModel : ViewModel
{
    public int UserId { get; set; }

    public int CategoryId { get; set; }

    public int CityId { get; set; }

    public AuctionBaseCategoryType BaseCategory { get; set; }

    public AuctionBaseType AuctionBaseType { get; set; }

    public string Title { get; set; }

    public string Description { get; set; }

    public DateTime EndDate { get; set; }

    public decimal MaxPrice { get; set; }

    public string Count { get; set; }

    public bool IsActive { get; set; }
}

Предложение ComplexPartialModel

public class GetOfferForAuctionDetail : ViewModel
{
    public OfferStatus OfferStatus { get; set; }

    public decimal Price { get; set; }
}

Контроллер предложений

public ActionResult AuctionBestOffer(int auction)
    {
        var response = _offerService.GetBestOffer(auction);
        if (response.IsCompleted)
            return PartialView(response.Data);
        return null;
    }

Аукционный контроллер

public ActionResult AuctionDetail(string title,int id)
    {
        var response = _auctionService.AuctionDetail(id);
        if(response.IsCompleted)
        return View(response.Data);
        return RedirectToAction("Index", "Home", new {notificationError = response.Message});
    }

с другой стороны OfferAuctionMixModel

public class GetAuctionDetailModel : ViewModel
{
public int UserId { get; set; }

public int CategoryId { get; set; }

public int CityId { get; set; }

public AuctionBaseCategoryType BaseCategory { get; set; }

public AuctionBaseType AuctionBaseType { get; set; }

public string Title { get; set; }

public string Description { get; set; }

public DateTime EndDate { get; set; }

public decimal MaxPrice { get; set; }

public string Count { get; set; }

public bool IsActive { get; set; }

public List<GetOfferForAuctionDetail> OfferModels { get; set; }
}

Контроллер

public List<GetAuctionDetailModel> GetModel(int id)
    {
        using (VerBiTeklifContext context = new VerBiTeklifContext())
        {
           var item =context.Auction.Where(s => s.Id == id).Include(s => 
           s.Offer);
          //mapping operations...
        }
    }

Я могу сделать тот же процесс, используя метод include.Какой из них мне следует использовать?

Хорошая работа для всех ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...