none
Calss dönüştürme RRS feed

  • Soru

  • Merhaba 

    Aşağıda parametre olarak gönderdiğim bir view tablosunu, ürünler tablosuna dönüştürmek istiyorum bunu nasıl yaparım,

    public  ProductTable productTable(ProductView p)
                {
                    ProductTable pt = (ProductView)ProductTable();
    
    
                    return pt;
                }


    Üretmek en büyük icraatır

    1 Ağustos 2018 Çarşamba 08:36

Yanıtlar

  • public ProductTable productTable(ProductView p)
    {
        ProductTable ret = new ProductTable();
        PropertyInfo pInfo;
        foreach (PropertyInfo property in p.GetType().GetProperties())
        {
            pInfo = ret.GetType().GetProperty(property.Name);
            if (pInfo != null)
                pInfo.SetValue(ret, property.GetValue(p));
        }
        return ret;
    }

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Musa adsız 3 Ağustos 2018 Cuma 08:44
    2 Ağustos 2018 Perşembe 13:08

Tüm Yanıtlar

  • Bu iki tablodaki stunların isimleri hemen hemen aynı, bir kaç değişik stun adı var, ben aynı olan stunlara bu değerleri aktarark dönüştürmek istiyorum

    Üretmek en büyük icraatır

    1 Ağustos 2018 Çarşamba 08:38
  • ProductTable ve ProductView sınıflarının yapısını paylaşırsanız yardımcı olabilirim.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    2 Ağustos 2018 Perşembe 10:48
  • Merhaba ProductTable yapısı

    SELECT [ProductID]
          ,[OrderID]
          ,[CretiaDate]
          ,[ResellerID]
          ,[StarOne]
          ,[StarTwo]
          ,[StarThere]
          ,[StarFour]
          ,[StarFive]
          ,[Price]
          ,[PriceShow]
          ,[Piece]
          ,[PageID]
          ,[CategoryIDList]
          ,[SuperFast]
          ,[TodayCargo]
          ,[CargoTime]
          ,[ProductPreviosID]
          ,[Seri]
          ,[Marka]
          ,[Model]
          ,[Show]
          ,[Aski]
      FROM [dbo].[ProductTable]
    


    Product Detail Yapısı

    SELECT [ProductDetailID]
          ,[LanguageID]
          ,[ProductID]
          ,[ProductName]
          ,[ProductDecription]
          ,[ProductDetail]
          ,[SeoKeyword]
          ,[SeoDescription]
          ,[KargoDetail]
          ,[Conditions]
      FROM [dbo].[ProductDetailTable]

    Burada Ben iki tabloyu bir viewde birleştirdim. Onun adı da productView

    ProductView Yapısı

    	SELECT [ProductID]
    		  ,[OrderID]
    		  ,[CretiaDate]
    		  ,[ResellerID]
    		  ,[StarOne]
    		  ,[StarTwo]
    		  ,[StarThere]
    		  ,[StarFour]
    		  ,[StarFive]
    		  ,[Price]
    		  ,[PriceShow]
    		  ,[Piece]
    		  ,[PageID]
    		  ,[CategoryIDList]
    		  ,[SuperFast]
    		  ,[TodayCargo]
    		  ,[CargoTime]
    		  ,[ProductPreviosID]
    		  ,[Seri]
    		  ,[Marka]
    		  ,[Model]
    		  ,[Show]
    		  ,[Aski]
    		  ,[ProductDetailID]
    		  ,[LanguageID]
    		  ,[ProductName]
    		  ,[ProductDecription]
    		  ,[ProductDetail]
    		  ,[SeoKeyword]
    		  ,[SeoDescription]
    		  ,[KargoDetail]
    		  ,[Conditions]
    	  FROM [dbo].[ProductView]


    Üretmek en büyük icraatır

    2 Ağustos 2018 Perşembe 11:47
  • Sanırım yanlış anladınız. Ben sınıf yapılarını kastetmiştim.

    Yani,

    public  ProductTable productTable(ProductView p)
    {
    }
    koyu renkle işaretlediğim sınıf yapılarını.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    2 Ağustos 2018 Perşembe 12:05
  • Sınıf yapıları derken bu sınıfların parametrelerini mi kast ediyorsunuz ?

    Ben bu işi şöyle çözdüm. Ancak bir dönüştürme yöntemi bulamdım. API sistemlerinde kullandığımız bir yapı vardır json işlemlerinde kulanırız .  ProductTable account = JsonConvert.DeserializeObject<ProductTable>(ProductView);

    gibi bir işlemle yapmak istiyorum ben

    Aşağıdaki gibi bir yapıyla yapıyorum

       public Add(ProductView p)
                    {
                        using (DatabaseEntities db = new DatabaseEntities())
                        {
                            ProductTable pt = new ProductTable()
                            {
                                TodayCargo = p.TodayCargo,
                                Aski = p.Aski,
                                Marka = p.Marka,
                                CargoTime = p.CargoTime,
                                CategoryIDList = p.CategoryIDList,
                                CretiaDate = p.CretiaDate,
                                Model = p.Model,
                                OrderID = p.OrderID,
                                PageID = p.PageID,
                                Piece = p.Piece,
                                Price = p.Price,
                                PriceShow = p.PriceShow,
                                ProductID = p.ProductID,
                                ProductPreviosID = p.ProductPreviosID,
                                ResellerID = p.ResellerID,
                                Seri = p.Seri,
                                Show = p.Show,
                                StarFive = p.StarFive,
                                StarFour = p.StarFour,
                                StarOne = p.StarOne,
                                StarThere = p.StarThere,
                                StarTwo = p.StarTwo,
                                SuperFast = p.SuperFast
                            };
    
                            db.ProductTable.Add(pt);
    }
    }



    Üretmek en büyük icraatır

    2 Ağustos 2018 Perşembe 12:15
  • public ProductTable productTable(ProductView p)
    {
        ProductTable ret = new ProductTable();
        PropertyInfo pInfo;
        foreach (PropertyInfo property in p.GetType().GetProperties())
        {
            pInfo = ret.GetType().GetProperty(property.Name);
            if (pInfo != null)
                pInfo.SetValue(ret, property.GetValue(p));
        }
        return ret;
    }

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Musa adsız 3 Ağustos 2018 Cuma 08:44
    2 Ağustos 2018 Perşembe 13:08
  • Hocam Merhaba 

    Bu method çalışıyor ancak  ret olarak yazdığımız  producttable boş bir olarak geliyor. 

    Üretmek en büyük icraatır

    2 Ağustos 2018 Perşembe 13:56
  • Hocam Merhaba 

    Bu method çalışıyor ancak  ret olarak yazdığımız  producttable boş bir olarak geliyor. 

    Üretmek en büyük icraatır

    Kendi bilgisayarımda test ettiğimde sorunsuz çalışıyor. Metodu kullandığınız konumdaki kodları paylaşırsanız inceleyebilirim.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    2 Ağustos 2018 Perşembe 14:01
  • Hocam kodu bu şekilde kullanıyorum

       public Add(ProductView p)
                    {
                       // ProductTable account = JsonConvert.DeserializeObject<ProductTable>(ProductView);
                        using (DatabaseEntities db = new DatabaseEntities())
                        {
    
                                ProductTable ret = new ProductTable();
                                PropertyInfo pInfo;
                                foreach (PropertyInfo property in p.GetType().GetProperties())
                                {
                                    pInfo = ret.GetType().GetProperty(property.Name);
                                    if (pInfo != null)
                                        pInfo.SetValue(ret, property.GetValue(p));
                                }
                         db.ProductTable.Add(ret);
    }
    }
          


    Üretmek en büyük icraatır

    2 Ağustos 2018 Perşembe 14:08
  • ProductTable ret  olarak ben boş alıyorm

    Üretmek en büyük icraatır

    2 Ağustos 2018 Perşembe 14:10