sqlsugar 时间属性插入空值时变为1900,怎么设置默认插入null
时间: 2023-07-16 07:15:05 浏览: 363
在使用 SqlSugar 进行时间属性插入时,如果传入的值为 null 或者 DateTime.MinValue,SqlSugar 会自动将其转换为 SQL Server 中的默认时间值 1900-01-01,如果想要插入 NULL 值,可以在实体类中对时间属性进行 Nullable 类型声明,如下所示:
```csharp
public class MyEntity
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime? CreateTime { get; set; } // 将时间属性声明为可空类型
}
```
然后在插入数据时,可以将 CreateTime 属性设置为 null:
```csharp
var entity = new MyEntity
{
Name = "Test",
CreateTime = null // 设置为 null
};
db.Insertable(entity).ExecuteCommand();
```
这样就可以插入 NULL 值了。
相关问题
sqlsugar 插入时间类型空值变为1900
SQLSugar 是一个ORM框架,它对时间类型的处理是将空值转换为.NET中的默认时间类型,即0001年1月1日 00:00:00。因此,在插入时如果时间类型为空,会默认插入这个时间。如果需要插入空值,可以通过将时间类型设置为Nullable类型来实现。例如:
```
public class MyModel
{
public int Id { get; set; }
public DateTime? CreateTime { get; set; }
}
var model = new MyModel
{
Id = 1,
CreateTime = null
};
Db.Insertable(model).ExecuteCommand();
```
这样,插入的时间类型就是空值。
sqlsugar 设置实体属性默认空
你可以在实体类中使用属性的默认值来设置默认空值。例如,如果你想要设置一个字符串类型的属性默认为空字符串,你可以这样写:
```csharp
public class MyEntity
{
public int Id { get; set; }
public string Name { get; set; } = ""; // 设置默认为空字符串
}
```
如果你使用的是 `SqlSugar`,你可以通过配置 `SugarParameter.DefaultValueIsNull` 来设置默认空值。
```csharp
// 设置默认空值
SqlSugar.DbSetting.DefaultValueIsNull = true;
// 创建实体对象时,未设置的属性默认为空值
var entity = new MyEntity();
```
此时,如果你创建了一个新的 `MyEntity` 对象,并且没有设置 `Name` 属性的值,那么该属性的默认值就会是空字符串。如果你没有设置 `SqlSugar.DbSetting.DefaultValueIsNull`,则未设置的属性默认为 `null`。
阅读全文