2017-02-08 61 views
7

Veritabanı ve ilk veri tabanı olan veri tabanı modelinde bigint birincil anahtar alanıyla çalışan tablom var. Aşağıdaki şekilde Çalışan sınıfBigint'e gereksiz dönüştürme

public partial class Employee 
{ 
    public long Emp_No { get; set; } 
    public string Name { get; set; } 
    public string Family { get; set; } 
    ... 
} 

Ben O sorgusu oluşturun

List<long> ids = new List<long>() {1,2,3,4,5,6} 
database.Employees.Where(q => ids.Contain(q.Emp_No)).ToList(); 

Entity Framework ile bu temel sorgu yazmak bu yapıya sahiptir: gereksiz döküm

SELECT 
    [Extent1].[Emp_No] AS [Emp_No], 
    [Extent1].[Name] AS [Name], 
    [Extent1].[Family] AS [Family], 
    ... 
    FROM [dbo].[Employee] AS [Extent1] 
    WHERE [Extent1].[Emp_No] IN (cast(0 as bigint), 
           cast(1 as bigint), 
           cast(2 as bigint), 
           cast(3 as bigint), 
           cast(4 as bigint), 
           cast(5 as bigint), 
           cast(6 as bigint)) 

yoktur Gördüğünüz gibi Sorgudaki bigint Emp_No ve ids dizilerinin her ikisi de long dizesidir, 012 olduğunda özel olarak kötü yürütme sürelerine neden olurdizisinin birçok öğesi vardır.

Bu gereksiz kadroyu nasıl kaldırabilirim?

cevap

3

Orada neredeyse dönüşüm cast(0 as bigint) hiçbir maliyeti olduğunu ve int hala muktedir bir bigint terfi gerekecektir orada döküm olmasaydı Emp_No ayrıca bigint çünkü IN karşılaştırması yapmak için, sahnenin hemen arkasında, dökümün devam etmesi gerekir.

Sorgunun yayınlanmayan sürümünü yönetim stüdyosunda çalıştırın ve gerçek yürütme planını alın ve sorguyu dönüşüm planında görmeye devam edersiniz.

-2

Gerçekten burada sorduğun ama ..

int uzun değiştirin

ve sorgu yerine sana bigint int yapmak gerektiği konusunda emin.

public partial class Employee 
{ 
    public int Emp_No { get; set; } 
    public string Name { get; set; } 
    public string Family { get; set; } 
    .... 
} 

Longint, bigint'in karşılığıdır. Daha buradan okuyabilirsiniz: What is the equivalent of bigint in C#?

+0

Bunu yapamıyorum .. Uzun türlere ihtiyacım var –

İlgili konular