【发布时间】:2016-02-19 03:21:37
【问题描述】:
我有一个测试类和一个 ExecutionDate 属性,它只存储日期,但是当我们使用 [DataType(DataType.Date)] 时,它也将时间部分存储在数据库中,但我只想要日期部分。
public class Test
{
[Key]
public int Id { get; set; }
[DataType(DataType.Date)]
public DateTime ExecutionDate { get; set; }
}
有什么方法可以使用实体框架在 db 中仅存储时间部分的日期吗?请帮帮我....
我在使用 [DataType(DataType.Date)] 时添加了存储时间部分 00:00 的快照,我想删除它
【问题讨论】:
-
那么,你的数据库表中列的datatype是什么?如果您的数据库中的列是
DATETIME- 那么您当然会得到存储的日期和时间。 数据库列必须是数据类型DATE——不仅仅是你在C#类上的属性! -
将您的数据库列设为
DATE! -
这更多的是观看问题而不是存储问题。即使时间部分设置为空,日期时间也是日期时间。显示表格内容的工具仅显示日期时间的默认格式。如果您不想看到时间部分,请更改用于查看数据库内容的工具的设置。
-
您只能在数据库级别使用
DATE- 在 .NET 和实体框架中,我们没有特定的“仅限日期”数据类型。在 .NET 代码中,您总是 有日期和时间 - 无法更改。但在 SQL Server 数据库表中,您可以将其设为DATE并仅存储日期 -
您的数据库是如何创建的?如果您遵循 Code First 并从您的代码生成数据库,那么您必须在该属性上添加 Column(TypeName="date") 属性。
标签: c# entity-framework datetime sqldatatypes entity-framework-6.1