Tôi đang sử dụng EntityFramework 7, beta7 và có các thực thể sau:
C#
Nhật ký lớp công khai
{
[Cột(TypeName="datetime")]
Ngày giờ công khai Ngày { được đặt;
...
}
SQL
TẠO BẢNG [dbo].[Nhật ký] (
[Ngày] [ngày giờ] KHÔNG NULL,
...
)
Sau đó tôi làm như sau:
db.Logs.Add(Nhật ký mới { Date = DateTime.UtcNow });
db.SaveChanges();
Điều này thành công trên Windows nhưng không thành công với mono trên debian. Cùng một máy chủ/cơ sở dữ liệu SQL. SQL được tạo như sau. Xin lưu ý rằng @p1
Sự khác biệt trong các loại và giá trị được trình bày:
Windows
exec sp_executesql N'SET NOCOUNT TẮT;
CHÈN VÀO [Nhật ký] ([Trình duyệt], [Ngày], [Ngoại lệ], [Địa chỉ máy chủ], [Cấp độ], [Logger], [Thông báo], [Chủ đề], [Url], [Tên người dùng])
ĐÃ CHÈN ĐẦU RA.[Id]
GIÁ TRỊ (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9);
',N'@p0 nvarchar(max) ,@p1 datetime2(7),@p2 nvarchar(max) ,@p3 nvarchar(max) ,@p4 nvarchar(4000),@p5 nvarchar(4000),@p6 nvarchar( 4000),@p7 nvarchar(4000),@p8 nvarchar(max),@p9 nvarchar(max) ',@p0=NULL,@p1='2015-09-28 23:02:26.0367851',@p2=NULL,@p3=NULL,@p4=N'INFO',@p5=N' Fanatics.ConsoleApp.Program',@p6=N'Console app test',@p7=N'0',@p8=NULL,@p9=NULL
đi
Linux
exec sp_executesql N'SET NOCOUNT TẮT;
CHÈN VÀO [Nhật ký] ([Trình duyệt], [Ngày], [Ngoại lệ], [Địa chỉ máy chủ], [Cấp độ], [Logger], [Thông báo], [Chủ đề], [Url], [Tên người dùng])
ĐÃ CHÈN ĐẦU RA.[Id]
GIÁ TRỊ (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9);
',N'@p0 nvarchar(4000), @p1 char(27), @p2 nvarchar(4000), @p3 nvarchar(4000), @p4 nvarchar(4000), @p5 nvarchar(4000), @p6 nvarchar( 4000), @p7 nvarchar(4000), @p8 nvarchar(4000), @p9 nvarchar(4000)',@p0=NULL,@p1='2015-09-28T23:03:21.5561720',@p2=NULL,@p3=NULL,@p4=N'INFO' ,@p5=N'Fanatics.ConsoleApp.Program',@p6=Ứng dụng N'Console test',@p7=N'0',@p8=NULL,@p9=NULL
đi
Lỗi trên Linux là:
Chuyển đổi không thành công khi chuyển đổi ngày và/hoặc thời gian từ chuỗi ký tự.
câu hỏi
- Khi loại được đặt rõ ràng thành
ngày giờ
Tại sao Windows tạo ra ngày giờ2
?
- Phiên bản Linux đang tạo SQL không hợp lệ và do đó không thành công. Cách chèn trên mono/linux
ngày giờ
值?
Tôi là một lập trình viên xuất sắc, rất giỏi!