Я вызываю хранимую процедуру на сервере sql db, который принимает параметры Date, где d1, d2 - тип C# DateTime. Я использую рамку сущности сделать так:Параметр даты с использованием хранимой процедуры Entity Framework
context.Database.ExecuteSqlCommand("myprocedure @p1 @p2",dt1.Date,dt2.Date)
Он не дал результатов, так что я пробовал:
var p0 = new SqlParameter("p0",dt1);
p0.SqlDbType = SqlDbType.Date;
var p1= new SqlParameter("p1", dt2);
p1.SqlDbType = SqlDbType.Date;
context.Database.ExecuteSqlCommand("myprocedure @p1 @p2",p0,p1)
Тем не менее, если я просто сделать:
context.Database.ExecuteSqlCommand("myprocedure @p1, @p2", '1/20/2014', '1/30/2014')
Я получаю правильный результат. Пожалуйста, помогите ... выйдя из головы.
Если вы хотите, чтобы получить дату часть значения DateTime, вызовите 'свойство .Date'. Ваш код действительно провалится, потому что вы используете локализованный формат (только для США), а не однозначный 'yyyy-MM-dd'. –
@PanagiotisKanavos u может изменить формат от MM/dd/YYYY до любого формата, который вам нужен ... почему вы делаете проблему более сложной? ... lol – cyan
Даты не имеют форматов. Это двоичные значения. На самом деле, это множественные преобразования без учета локали, которые делают вещи намного сложнее. –