Использование основных и основных данных в базе данных без использования хранимой процедуры EF - PullRequest
0 голосов
/ 18 февраля 2020

Проблема в конкретном продукте и интерфейсе продукта! Как добавить другие данные таблицы «Основные сведения о продукте»

Я хочу сохранить сведения о продукте и продукте, моя проблема заключается в том, как сохранить сведения о продукте, в интерфейсе как сохранить другие данные таблицы, например сведения о продукте, и как написать db.product.add() как это. А затем передать данные в контроллер.

Есть ли какой-нибудь другой метод, которым любой эксперт мог бы поделиться простым методом, который мне полезен, написать короткий код и все готово. Я не хочу go с хранимой процедурой. Я хочу написать код в EF с использованием LINQ, а затем сохранить данные в базе данных.

Моя единственная проблема заключается в том, как добавить два референта таблицы и нажать кнопку «Сохранить данные в базе данных». Я также добавляю одну таблицу, и меня смущает другая ссылка на таблицу.

Модель продукта:

public partial class Product
{
    public long ProductID { get; set; }
    public string PName { get; set; }
    public string PDescription { get; set; }
    public string Model { get; set; }
    public string Condition { get; set; }
    public double UnitPrice { get; set; }
    public double ManificturedPrice { get; set; }
    public int P_SizeID { get; set; }
    public int P_Color_ID { get; set; }
    public int PType_ID { get; set; }
    public int P_SpecificationID { get; set; }
    public Nullable<double> Discount { get; set; }
    public double UnitWeight { get; set; }
    public double UnitInStock { get; set; }
    public string imagePath { get; set; }
}

Основные сведения о продукте:

public partial class MasterDetail
{
           public int mDID { get; set; }

            public long ProductID { get; set; }
            public string OS { get; set; }
            public string SimType { get; set; }
            public string DualSim { get; set; }
            public string FrequencyBrand { get; set; }
            public string WaterResistant { get; set; }
            public string TouchScreen { get; set; }
            public string ScreenSize { get; set; }
            public string ScreenResolution { get; set; }
            public string ProcessorType { get; set; }
            public string ProcessorSpeed { get; set; }
            public string MainCamera { get; set; }
            public string DualCamera { get; set; }
            public string CameraFlash { get; set; }
            public string RAM { get; set; }
            public string InternalMemory { get; set; }
            public string ExpandableMemory { get; set; }
            public string Wifi { get; set; }
            public string ThreeG { get; set; }
            public string FourG { get; set; }
            public string GPRS { get; set; }
            public string Bluetooth { get; set; }
            public string FMRadio { get; set; }
            public string GPS { get; set; }
            public string CameraPhone { get; set; }
            public string TalkTime { get; set; }
            public string StandBy { get; set; }
            public string Warranty { get; set; }
            public string HardDiskCapacity { get; set; }
            public string HDDRPM { get; set; }
            public string GraphicsCard { get; set; }
            public string VideoMemory { get; set; }
            public string OpticalDrive { get; set; }
            public string LensProvided { get; set; }
            public string BuiltInFlash { get; set; }
            public string BatteryLife { get; set; }
            public string MaxISOSensitivity { get; set; }
            public string FullHDMovie { get; set; }
            public string VideoResolution { get; set; }
            public string Other { get; set; }
}

Интерфейс продукта:

public interface IProduct
{
    void Add_NewProduct(Product prod);
    void Update_Product(Product prod);
}

Класс продукта:

public void Add_NewProduct(Product prod)
{
    try
    {
        _db.Products.Add(prod); // Here is the problem: how to add master detail referent easy method .
        _db.SaveChanges();
    }
    catch (Exception)
    {
        throw;
    }
}

Контроллер продукта:

[HttpPost]
public ActionResult AddNewProducts(ProductViewModel prod, List<HttpPostedFileBase> file)
{
    try
    {
        List<ProductType> PTlist = _IproductType.PTList();
        ViewBag.Ptlist = new SelectList(PTlist, "PType_ID", "P_Name");

        // Product Color List
        List<P_Color> pColorList = _IProductColor.PColorlist();
        ViewBag.pColor_List = new SelectList(pColorList, "C_ID", "C_Name_OR_Code");

        List<P_Size> pSizeList = _ISize.pSizeList();
        ViewBag.pSizeLists = new SelectList(pSizeList, "S_ID", "S_Size");

        var newFileName = string.Empty;
        string PathDB = string.Empty;

        if (file != null)
        {
            ModelState.AddModelError("", "Upload Image File !");
        }

        foreach (HttpPostedFileBase files in file)
        {
            string filename = Path.GetFileName(files.FileName);
            string _filename = DateTime.Now.ToString("yymmssff") + filename;
            string extension = Path.GetExtension(files.FileName);
            string path = Path.Combine(Server.MapPath("~/Upload/"), _filename);
            PathDB = "~/Upload/"+_filename;

            if (extension.ToLower() == ".jpeg" || extension.ToLower() == ".jpg" || extension.ToLower() == ".png")
            {
                if (files.ContentLength <= 1000000)
                {
                    Product pro = new Product();
                    pro.ProductID = 1;
                    pro.PName = prod.PName;
                    pro.PDescription = prod.PDescription;
                    pro.Model = prod.Model;
                    pro.Condition = prod.Condition;
                    pro.UnitPrice = prod.UnitPrice;
                    pro.ManificturedPrice = prod.ManificturedPrice;
                    pro.P_SizeID = prod.P_SizeID;
                    pro.P_Color_ID = prod.P_Color_ID;
                    pro.PType_ID = prod.PType_ID;
                    pro.P_SpecificationID = 1;
                    pro.Discount = prod.Discount;
                    pro.UnitWeight = prod.UnitWeight;
                    pro.UnitInStock = prod.UnitInStock;
                    pro.imagePath = PathDB;

                    MasterDetail p_spec = new MasterDetail ();

                    p_spec.PSpecificationID = prod.PSpecificationID;
                    p_spec.ProductID = prod.ProductID;
                    p_spec.OS = prod.OS;
                    p_spec.SimType = prod.SimType;
                    p_spec.DualSim = prod.DualSim;
                    p_spec.FrequencyBrand = prod.FrequencyBrand;
                    p_spec.WaterResistant = prod.WaterResistant;
                    p_spec.TouchScreen = prod.TouchScreen;
                    p_spec.ScreenSize = prod.ScreenSize;
                    p_spec.ScreenResolution = prod.ScreenResolution;
                    p_spec.ProcessorType = prod.ProcessorType;
                    p_spec.ProcessorSpeed = prod.ProcessorSpeed;
                    p_spec.MainCamera = prod.MainCamera;
                    p_spec.DualCamera = prod.DualCamera;
                    p_spec.CameraFlash = prod.CameraFlash;

                    p_spec.RAM = prod.RAM;
                    p_spec.InternalMemory = prod.InternalMemory;
                    p_spec.ExpandableMemory = prod.ExpandableMemory;
                    p_spec.Wifi = prod.Wifi;
                    p_spec.ThreeG = prod.ThreeG;
                    p_spec.FourG = prod.FourG;

                    p_spec.GPRS = prod.GPRS;
                    p_spec.Bluetooth = prod.Bluetooth;
                    p_spec.FMRadio = prod.FMRadio;

                    p_spec.CameraPhone = prod.CameraPhone;
                    p_spec.TalkTime = prod.TalkTime;

                    p_spec.StandBy = prod.StandBy;
                    p_spec.Warranty = prod.Warranty;
                    p_spec.HardDiskCapacity = prod.HardDiskCapacity;

                    p_spec.HDDRPM = prod.HDDRPM;
                    p_spec.GraphicsCard = prod.GraphicsCard;
                    p_spec.VideoMemory = prod.VideoMemory;

                    p_spec.OpticalDrive = prod.OpticalDrive;
                    p_spec.LensProvided = prod.LensProvided;
                    p_spec.BuiltInFlash = prod.BuiltInFlash;

                    p_spec.BatteryLife = prod.BatteryLife;
                    p_spec.MaxISOSensitivity = prod.MaxISOSensitivity;

                    p_spec.VideoResolution = prod.VideoResolution;
                    p_spec.Other = prod.Other;

                    _IProducts.Add_NewProduct(pro);

                    ViewBag.message = "Record Saved Successfully";
                    ModelState.Clear();
                }
                else
                    ViewBag.sizemsg = "Size Limit accessed ";
            }
            else
                ViewBag.fileformat = "File is not Format is not Correct";
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }

    return RedirectToAction("ProductsList");
}

Вид продукта:

  @using (Html.BeginForm("AddNewProducts", "Items", FormMethod.Post, new { enctype = "multipart/form-data", @class = "form-horizontal" }))
            {     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...