execution plan question I have this query running for long time 

    (@P0 nvarchar(4000))

select emaildmo0_.Id as Id7_
    ,emaildmo0_.CreatedDate as CreatedD2_7_
    ,emaildmo0_.EmailAddress as EmailAdd3_7_
    ,emaildmo0_.EmailType_Id as EmailType4_7_
    ,emaildmo0_.isPreferedEmail as isPrefer5_7_
    ,emaildmo0_.ProfileId as ProfileId7_
    ,emaildmo0_.UpdatedDate as UpdatedD6_7_
from dbo.Email emaildmo0_
where emaildmo0_.EmailAddress = @P0


This is the execution plan



My first question why it is index scan not index seek

These 2 lines from the ExecutionPlan.xml

        &lt;Warnings&gt;
          &lt;PlanAffectingConvert ConvertIssue="Cardinality Estimate" Expression="CONVERT_IMPLICIT(nvarchar(255),[emaildmo0_].[EmailAddress],0)" /&gt;
          &lt;PlanAffectingConvert ConvertIssue="Seek Plan" Expression="CONVERT_IMPLICIT(nvarchar(255),[emaildmo0_].[EmailAddress],0)=[@P0]" /&gt;
        &lt;/Warnings&gt;


May you explain for me what is this warning mean ? and if there is any suggestion to tune this query
It means that the parameter should be defined to match the data type of the underlying column - currently the parameter is nvarchar(4000) but it should be varchar (looks like 255 but you should check the table).

Whether this actually makes your query slow or leads to a bad plan is tougher to determine. But making those two definitions match certainly isn't going to make it worse.

If you can't change the parameter data type, either get a better ORM or change the column as a last resort.