16 Ekim 2014 Perşembe

Entity Framework 6 da EdmFunctionAttribute yerine DbFunctionAttribute ile değiştirilmesi

Entity Framework 6 da SQL Server üzerindeki fonksiyonları import etmek istediğinizde eğer aşağıdaki hata ile karşılaşıyorsanız;

System.Data.Entity.Core.Objects.DataClasses.EdmFunctionAttribute is obsolete: 'This attribute has been replaced by System.Data.Entity.DbFunctionAttribute

Entity Framework aracı ile hazırladığınız function import ettiğinizde EdmFunctionAttribute özelliği ile ekleyecektir. DbFunction olarak değiştiriseniz hata almayacaksınız ve function çalışacaktır.

[EdmFunctionAttribute("MikroDB_V14_Entities", "orfe_DepolardakiStokDurumu")]
        public virtual IQueryable<orfe_DepolardakiStokDurumu_Result1> orfe_DepolardakiStokDurumu(string stokKodu, string partiKodu, Nullable<int> lotNo, string depolar)
        {
            var stokKoduParameter = stokKodu != null ?
                new ObjectParameter("StokKodu", stokKodu) :
                new ObjectParameter("StokKodu", typeof(string));
   
            var partiKoduParameter = partiKodu != null ?
                new ObjectParameter("PartiKodu", partiKodu) :
                new ObjectParameter("PartiKodu", typeof(string));
   
            var lotNoParameter = lotNo.HasValue ?
                new ObjectParameter("LotNo", lotNo) :
                new ObjectParameter("LotNo", typeof(int));
   
            var depolarParameter = depolar != null ?
                new ObjectParameter("Depolar", depolar) :
                new ObjectParameter("Depolar", typeof(string));
   
            return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<orfe_DepolardakiStokDurumu_Result1>("[MikroDB_V14_Entities].[orfe_DepolardakiStokDurumu](@StokKodu, @PartiKodu, @LotNo, @Depolar)", stokKoduParameter, partiKoduParameter, lotNoParameter, depolarParameter);
        }