Jus*_*tin 13 c# entity-framework
在我的SQL Server数据库模式中,我有一个数据表,其日期字段包含默认值
CONVERT(VARCHAR(10), GETDATE(), 111)
Run Code Online (Sandbox Code Playgroud)
这是手动将记录输入数据库时自动将日期插入新记录的理想选择.
我遇到的问题是,当使用实体框架并映射Date字段时,实体框架在实例化实体时插入默认值DateTime.Min.
我无法将Date字段映射到可以为空的DateTime,即DateTime ?,我也无法在Entity Designer的默认值中使用CONVERT或DateTime.Now.Today,因为它只接受硬编码的常量值.
我当然可以在创建对象时在C#中显式设置DateTime字段,无论是在代码中显式地在部分类的构造函数中,还是在保存更改事件期间.
有没有其他方法可以实现我想要的,而实际使用的是存储在数据库表中的默认值计算?
小智 13
为EntityObject创建一个分部类,添加一个默认构造函数,并在其中设置默认值.
public partial class YourDBObject
{
public YourDBObject()
{
this._DateField = DateTime.Now;
}
}
Run Code Online (Sandbox Code Playgroud)
我刚刚遇到了这个问题 - 我通过使用部分方法在实体的构造函数中设置日期(我需要自动生成的字段)来解决它。这是否理想或是否适用于所有情况还有待观察,但到目前为止它已经解决了我的问题。
| 归档时间: |
|
| 查看次数: |
17899 次 |
| 最近记录: |