不同于使用某物

本文关键字:不同于 | 更新日期: 2023-09-27 18:17:08

我现在正在MVC 5.0 c#中创建web应用程序,我的作品停止了,因为我有一个小问题。我有类Packs,接口Packs - IPacksrepository,和PacksController

Packs.cs

namespace Domain.Entities
{
public class Packs
{
    public int PacksID { get; set; }
    public string Name { get; set; }
    public string OwnerDescripiton { get; set; }
    public decimal wymiarX { get; set; }
    public decimal wymiarY { get; set; }
    public decimal wymiarZ { get; set; }
    public decimal Waga { get; set; }
    public string dataprzyjeciadomagazynu { get; set; }
    public string datawyslaniazmagazynu { get; set; }
    public string dataodebrania { get; set; }
    public int WarehousesID { get; set; }
    [ForeignKey("WarehousesID")]
    public Warehouses Warehouses { get; set; }
 }
}

IPackRepostiory:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Domain.Entities;

namespace Domain.Abstract
{
public interface IPacksRepository
{
    IEnumerable<Packs> Packss { get; }
    void SavePacks(Packs packs);
    Packs DeletePacks(int PacksID);
 }
}

PackController:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Domain.Entities;
using Domain.Abstract;
using WebUi.Models;
namespace WebUi.Controllers
{
public class PacksController : Controller
{
    private IPacksRepository repository;
    public int PageSize = 1;
    public PacksController(IPacksRepository packrepostiory)
    {
        this.repository = packrepostiory;
    }
    public ViewResult List()
    {
        return View(repository.Packss);
    }
    public ViewResult Index()
    {
        return View(repository.Packss);
    }
    public ViewResult Create()
    {
        return View("Edit", new Packs());
    }
    public ActionResult Details(int? PacksID)
    {
       Packs packs = repository.Packss.FirstOrDefault(p => p.PacksID == PacksID);
       return View(packs);
    }

    public ViewResult Edit(int? PacksID)
    {
        Packs packss = repository.Packss.FirstOrDefault(p => p.PacksID == PacksID);
        return View(packss);
    }
    [HttpPost]
    public ActionResult Edit(Packs packs)
    {
        if (ModelState.IsValid)
        {
            repository.SavePacks(packs);
            TempData["message"] = string.Format("Zapisano {0} ", packs.Name);
            return RedirectToAction("Index");
        }
        else
        {
            return View(packs);
        }

    }
    public ActionResult Delete(int PacksID)
    {
        Packs delpacks = repository.DeletePacks(PacksID);
        if (delpacks != null)
        {
            TempData["message"] = string.Format("Usunięto {0}", delpacks.Name);
        }
        return RedirectToAction("Index");
    }
}
}

在我的项目中,我有几个类,interfacesControllers(如persons, warehouses, transportfleet) -所有功能在结构上是相似的,不同的只是数据集。

所有I "name"存储库使用using Domain.Entities,一切正常,一切正常。Domain.Entities包含Pack.cs等。IPacksRepostiory,即使它包含没有使用的名称using Domain.Entities。通过这种方式,我在PackController中得到了错误,如PackController:

public ViewResult Edit(int? PacksID)
{
    Packs packss = repository.Packss.FirstOrDefault(p => p.PacksID == PacksID);
    return View(packss);
}

repository.Packss。FirstOrDefault(p => p.PacksID == PacksID);->错误CS1503参数1:无法从"Domain.Entities.Packs"转换"域。包'

不同于使用某物

您可以使用var关键字代替:

var packss = repository.Packss.FirstOrDefault(p => p.PacksID == PacksID);

或者隐式指定限定符和完整类型名,以区分模棱两可的类名:

Domain.Entities.Packs packss = repository.Packss.FirstOrDefault(p => p.PacksID == PacksID);