Linq etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Linq etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

13 Şubat 2017 Pazartesi

The specified type member 'Date' is not supported in LINQ to Entities

     Tarih ve saat içeren "2017-01-25 11:01:30.917" datetime türündeki verilerde tarih sorgusu LINQ sorgularında aşağıdaki hata mesajı alıyor olabilirsiniz.

"System.Data.Entity.DbFunctions.TruncateTime(date)" fonksiyonu çözüm olacaktır.

{"The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported."}



var qryListesi = (from rzv in IBase.GetOrfeDB().MIKRO_SIPARIS_REZERVASYON
                  where rzv.sipr_kapat_fl == kapaliFl && 
(System.Data.Entity.DbFunctions.TruncateTime(rzv.sipr_create_date) >= xdeIlkTarih.DateTime.Date &&

System.Data.Entity.DbFunctions.TruncateTime(rzv.sipr_create_date) <= xdeSonTarih.DateTime.Date)
                  select new {
                  RecNo = rzv.sipr_RECno,
                  Cinsi = rzv.sipr_cins==0 ? "Normal" : rzv.sipr_cins==3 ? "İhracat" : "",
                  OlusturmaTarihi = rzv.sipr_lastup_date,
                  SiparisTarihi = rzv.sipr_tarih,
                  SiparisSeri = rzv.sipr_evrakno_seri,
                  SiparisSira = rzv.sipr_evrakno_sira,
                  CariKodu = rzv.sipr_cari_kodu,
                  CariUnvani = rzv.sipr_cari_unvani,
                  StokKodu = rzv.sipr_stok_kodu,
                  StokIsmi = rzv.sipr_stok_ismi,
                  SiparisMiktari = rzv.sipr_miktar,
                  RezervMiktari = rzv.sipr_rezerv_miktar,
                  RezervDepoNo = rzv.sipr_rezerv_depo_no,
                  RezervDepoIsmi = rzv.sipr_rezerv_depo_ismi,
                  RezervPartiKodu = rzv.sipr_rezerv_parti_kodu,
                  RezervLotNo = rzv.sipr_rezerv_lot_no,
                  IrsaliyeRecNo = rzv.sipr_irsaliye_recno }).ToList();

10 Ağustos 2011 Çarşamba

LINQ Örnekleri için LINQ Project Sample Query Explorer

LINQ to Objects - LINQ to SQL - LINQ to DataSet - LINQ to XML gibi LINQ örneklere ihtiyacınız olduğunda http://msdn.microsoft.com/en-us/vcsharp/aa336746 kaynaktan faydalanbilirsiniz.

Eğer örnekler yeterli değil daha detaylı örneklere ihtiyacınız olur ise MSDN kaynaklarında C# ve VB için LINQ  Project Sample Query Explorer indirerek daha detaylı örnekleri inceleyebilirsiniz.

http://code.msdn.microsoft.com/LINQ-Sample-Queries-13a42a54


19 Temmuz 2011 Salı

LINQ To SQL LIKE Operatörü kullanımı

Linq to SQL Like operatörü kullanılması.
Verilen kriter ile başlayan. StartsWith("01KS") 
var isMerkezleri = from mr in mye.IS_MERKEZLERIs
                   where mr.IsM_Kodu.StartsWith("01KS")
                   orderby mr.IsM_Aciklama
                   select new
                   {
                       mr.IsM_Kodu,
                       mr.IsM_Aciklama
                   };
Verilen kriter ile biten. EndsWith("01") 
var isMerkezleri = from mr in mye.IS_MERKEZLERIs
                   where mr.IsM_Kodu.EndsWith("01")
                   orderby mr.IsM_Aciklama
                   select new
                   {
                       mr.IsM_Kodu,
                       mr.IsM_Aciklama
                   };
Verilen kriter ile içerisinde geçen. Contains("KS") 
var isMerkezleri = from mr in mye.IS_MERKEZLERIs
                   where mr.IsM_Kodu.EndsWith("KS")
                   orderby mr.IsM_Aciklama
                   select new
                   {
                       mr.IsM_Kodu,
                       mr.IsM_Aciklama
                   };

20 Nisan 2011 Çarşamba

LINQ to SQL - Left Outer Join kullanırken birden fazla parametre vermek.

Linq to sql ile left outer kullanırken birden fazla parametre ile sorgu yazmak.
var malzemePlan = from pln in mye.URETIM_MALZEME_PLANLAMAs
                  from bdn in mye.BEDEN_HAREKETLERIs.Where(a =
                         a.BdnHar_DRECid_DBCno == pln.upl_RECid_DBCno
                         a.BdnHar_DRECid_RECno == pln.upl_RECid_RECno
                         a.BdnHar_Tipi == 'N').DefaultIfEmpty()
                  where pln.upl_isemri == isEmriKodu && 
                        pln.upl_satirno == 0 && 
                        pln.upl_uretim_tuket == 1
                  select new
                  {
                      pln.upl_urstokkod,
                      pln.upl_depno,
                      bdn.BdnHar_BedenNo,
                      bdn.BdnHar_HarGor
                  };

4 Ocak 2011 Salı

SQL Image Data Type veriyi PictureBox ile görüntülemek.

SQL Server veritabanında binary veri türlerinden olan Image data type verilerini PictureBox ile görüntülemek için basit bir kod.

private void button1_Click(object sender, EventArgs e){
    pictureBoxStokResmi.Image = GetStokResmi(txtStokKodu.Text);
}
 
private Image GetStokResmi(string StokKodu){
    Image _image = null;
    var stok = from st in mye.STOKLARs
               where st.sto_kod == StokKodu
               select new
               {
                   st.sto_RECid_DBCno,
                   st.sto_RECid_RECno,
                   st.sto_fileid
               };
    foreach (var str in stok)
    {
        var image = (from pb in mye.mye_ImageDatas
                     where pb.RecID_DBCno == str.sto_RECid_DBCno && 
                     pb.RecID_RECno == str.sto_RECid_RECno &&
                     pb.TableID == str.sto_fileid
                     select pb.Data).FirstOrDefault();
        byte[] array = image.ToArray();
        _image = Image.FromStream(new MemoryStream(array));
    }
    return _image;
}

10 Kasım 2010 Çarşamba

Row not found or changed. – LINQ – ChangeConflictException

Eğer Linq to SQL kullanırken "SubmitChanges();" update etmek istediğiniz data "Row not found or changed" mesajı alırsanız hatayı yakalayıpduruma göre eski yada yeni değeri veritabanına yazabilirsiniz.

try
{
      MikroDbDataContext.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException)
{
      foreach (ObjectChangeConflict conflict in MikroDbDataContext.ChangeConflicts)
      {
             conflict.Resolve(RefreshMode.OverwriteCurrentValues);
      }
}

Yada hiç uğraşmak istemiyorum derseniz;

Update "SubmitChanges();" etmeden önce değişiklik yapacağınız nesneyi refresh ederseniz hatanın oluşmasını önleyebilirsiniz.

MikroDbDataContext.Refresh(RefreshMode.OverwriteCurrentValues, mlzDurumKontrol);

11 Ağustos 2010 Çarşamba

LINQ DataContext'in hazır gelen CommandTimeout değerini değiştirmek.

Linq DataContext 'in timeout süresini Connection String yardımı ile değiştiremiyoruz.

connectionString="Data Source=SERVER;Initial Catalog=MikroDB_V12_TEST;Integrated Security=True;Connect Timeout=3600";

TESTDB.dbml
TESTDB.designer.cs dosya içersinden değiştirebiliriz.
 
partial void OnCreated();
//Özel bir method. Bu method yardımı ile değişiklikler yapabilmemizi sağlıyor.

[System.Data.Linq.Mapping.DatabaseAttribute(Name="MikroDB_V12_TEST")]
public partial class MikroDbDataContext : System.Data.Linq.DataContext
{
        //Timeout süresini yazabileceğiniz yer.
        partial void OnCreated()
        {
            this.CommandTimeout = 3600;
        }

        private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();

MSDN : Partial Classes and Methods (C# Programming Guide)